GVKun编程网logo

在不中断程序的情况下在 Python 中发出警告(中断python程序运行)

16

想了解在不中断程序的情况下在Python中发出警告的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于中断python程序运行的相关问题,此外,我们还将为您介绍关于python–如何在不创建模型

想了解在不中断程序的情况下在 Python 中发出警告的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于中断python程序运行的相关问题,此外,我们还将为您介绍关于python – 如何在不创建模型的情况下在django中保存文件、python 脚本在不中断运行的情况下,修改循环间隔、Python-如何在不停止程序的情况下打印完整的回溯?、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中保存文件

python – 如何在不创建模型的情况下在django中保存文件

我想上传excel文件并将该文件保存到 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()函数有问题.

解决方法

如果你使用open(如open(‘path’,’wb’),那么你需要使用FULL路径.

你能做的是:

from django.conf import settings
destination = open(settings.MEDIA_ROOT + filename,''wb+'')

python 脚本在不中断运行的情况下,修改循环间隔

python 脚本在不中断运行的情况下,修改循环间隔

  • 创建三个文件分别是:
  • changete.py 修改配置文件的脚本
  • config.py 配置文件,用于配置运行间隔
  • te.py 测试脚本,做了一个死循环。具体看图

可以看到,当运行 te.py 时,打印的时间间隔是 20 秒。

现在我运行 changete.py 脚本把配置文件的 interval 修改成 2

可以看到打印的时间间隔已经变成了 40 秒

Python-如何在不停止程序的情况下打印完整的回溯?

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脚本吗?

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脚本吗?等更多相关知识的信息可以在本站进行查询。

本文标签: