想了解在不中断程序的情况下在Python中发出警告的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于中断python程序运行的相关问题,此外,我们还将为您介绍关于python–如何在不创建模型
想了解在不中断程序的情况下在 Python 中发出警告的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于中断python程序运行的相关问题,此外,我们还将为您介绍关于python – 如何在不创建模型的情况下在django中保存文件、python 脚本在不中断运行的情况下,修改循环间隔、Python-如何在不停止程序的情况下打印完整的回溯?、python:我可以在不实际安装python的情况下运行python脚本吗?的新知识。
本文目录一览:- 在不中断程序的情况下在 Python 中发出警告(中断python程序运行)
- python – 如何在不创建模型的情况下在django中保存文件
- python 脚本在不中断运行的情况下,修改循环间隔
- Python-如何在不停止程序的情况下打印完整的回溯?
- python:我可以在不实际安装python的情况下运行python脚本吗?
在不中断程序的情况下在 Python 中发出警告(中断python程序运行)
我试图在 Python 中发出警告而不使程序崩溃/停止/中断。
我使用以下简单函数来检查用户是否向其传递了非零数字。如果是这样,程序应该警告他们,但照常继续。它应该像下面的代码一样工作,但应该使用 class
Warning()
,Error()
而Exception()
不是手动打印警告。
def is_zero(i):
if i != 0:
print "OK"
else:
print "WARNING: the input is 0!"
return i
如果我使用下面的代码并将 0 传递给函数,则程序崩溃并且永远不会返回该值。相反,我希望程序正常继续,并通知用户他将 0 传递给函数。
def is_zero(i):
if i != 0:
print "OK"
else:
raise Warning("the input is 0!")
return i
我希望能够测试单元测试是否已抛出警告。如果我只是将消息打印出来,我将无法在 unittest 中使用 assertRaises 对其进行测试。
python – 如何在不创建模型的情况下在django中保存文件
我在这里试过
我的forms.py文件
class UploadFileForm(forms.Form): file = forms.FileField(label=''Select a file'',help_text=''max. 42 megabytes'')
我的views.py
import xlrd from property.forms import UploadFileForm def excel(request): if request.method == ''POST'': form = UploadFileForm(request.POST,request.FILES) if form.is_valid(): newdoc = handle_uploaded_file(request.FILES[''file'']) print newdoc print "you in" newdoc.save() return HttpResponseRedirect(reverse(''upload.views.excel'')) else: form = UploadFileForm() # A empty,unbound form #documents = Document.objects.all() return render_to_response(''property/list.html'',{''form'': form},context_instance=RequestContext(request)) def handle_uploaded_file(f): destination = open(''media/file/sheet.xls'',''wb+'') for chunk in f.chunks(): destination.write(chunk) destination.close()
所以在尝试这个时我得到了错误.
IOError at /property/excel/ [Errno 2] No such file or directory: ''media/file/sheet.xls'' Request Method: POST Request URL: http://127.0.0.1:8000/property/excel/ Django Version: 1.5 Exception Type: IOError Exception Value: [Errno 2] No such file or directory: ''media/file/sheet.xls'' Exception Location: D:\Django_workspace\6thmarch\dtz\property\views.py in handle_uploaded_file,line 785
请帮我解决这个问题,handle_uploaded_file()函数有问题.
解决方法
你能做的是:
from django.conf import settings destination = open(settings.MEDIA_ROOT + filename,''wb+'')
python 脚本在不中断运行的情况下,修改循环间隔
- 创建三个文件分别是:
- changete.py 修改配置文件的脚本
- config.py 配置文件,用于配置运行间隔
- te.py 测试脚本,做了一个死循环。具体看图
可以看到,当运行 te.py 时,打印的时间间隔是 20 秒。
现在我运行 changete.py 脚本把配置文件的 interval 修改成 2
可以看到打印的时间间隔已经变成了 40 秒
Python-如何在不停止程序的情况下打印完整的回溯?
我正在编写一个程序,该程序可以解析10个网站,找到数据文件,保存文件,然后解析它们以生成可以在NumPy库中轻松使用的数据。有万吨通过不良链接,不好的XML,缺项,其他的事情我还没有进行分类文件遇到错误的。我最初制作该程序来处理如下错误:
try: do_stuff()except: pass
但是现在我想记录错误:
try: do_stuff()except Exception, err: print Exception, err
请注意,这是打印到日志文件中以供以后查看。这通常会打印出非常无用的数据。我想要的是在错误触发时打印完全相同的行,而没有try-except拦截异常,但是我不希望它暂停我的程序,因为它嵌套在我想要的一系列for循环中看到完成。
答案1
小编典典其他一些答案已经指出了追溯模块。
请注意,使用print_exc
,在某些特殊情况下,你将无法获得预期的结果。在Python 2.x中:
import tracebacktry: raise TypeError("Oups!")except Exception, err: try: raise TypeError("Again !?!") except: pass traceback.print_exc()
…将显示最后一个异常的回溯:
Traceback (most recent call last): File "e.py", line 7, in <module> raise TypeError("Again !?!")TypeError: Again !?!
如果你确实需要访问原始的回溯,一种解决方案是将异常信息从exc_info
本地变量中返回,并使用来显示它print_exception
:
import tracebackimport systry: raise TypeError("Oups!")except Exception, err: try: exc_info = sys.exc_info() # do you usefull stuff here # (potentially raising an exception) try: raise TypeError("Again !?!") except: pass # end of useful stuff finally: # Display the *original* exception traceback.print_exception(*exc_info) del exc_info
输出:
Traceback (most recent call last): File "t.py", line 6, in <module> raise TypeError("Oups!")TypeError: Oups!
与此相关的一些陷阱:
从文档sys_info
:
在处理异常的函数中将回溯返回值分配给局部变量将导致循环引用。这将防止垃圾回收由同一函数中的局部变量或回溯引用的任何内容。[…] 如果确实需要回溯,请确保在使用后将其删除(最好通过try … finally语句完成)
但是,根据同一文档:
从Python 2.2开始,启用垃圾回收并且无法访问时,会自动回收此类循环,但是避免创建循环仍然更加有效。
另一方面,通过允许你访问与异常关联的回溯,Python 3产生了一个不太令人惊讶的结果:
import tracebacktry: raise TypeError("Oups!")except Exception as err: try: raise TypeError("Again !?!") except: pass
traceback.print_tb(err.__traceback__)
…将显示:
File "e3.py", line 4, in <module> raise TypeError("Oups!")
python:我可以在不实际安装python的情况下运行python脚本吗?
我写了一些要在其他计算机上运行的.py文件。目标机器未安装python,因此我无法通过策略“安装”它。我所能做的就是复制文件,运行我的东西,然后将其删除。
我试图将开发python文件夹移至目标计算机,将cd移至python文件夹并运行python.exe
/path/to/.py/file
。它给我一个错误,指出未注册python.dll。如果我注册了DLL,这可能会使我跨过“违反政策”行。
无论如何,我是否可以在没有实际安装python的机器上完成运行python文件的操作(试图让py2exe现在工作,但这很痛苦)?
今天关于在不中断程序的情况下在 Python 中发出警告和中断python程序运行的介绍到此结束,谢谢您的阅读,有关python – 如何在不创建模型的情况下在django中保存文件、python 脚本在不中断运行的情况下,修改循环间隔、Python-如何在不停止程序的情况下打印完整的回溯?、python:我可以在不实际安装python的情况下运行python脚本吗?等更多相关知识的信息可以在本站进行查询。
本文标签: