写入文件失败,但不生成E

2024-06-28 21:06:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试着写一个文件,但没用。我已经一步一步地使用调试器(它转到write命令,但当我打开文件时,它是空的)。在

我的问题要么是:“我如何知道错误是什么,这样我就可以调试了?”,“当试图写入文件时,会出现什么错误,从而导致文件出现这种情况?”。在

sqlScript = open('script-file.sql', 'a')

    try:
         sqlScript.write(sqlLine)
    except IOError as (errno, strerror):
         print "I/O error({0}): {1}".format(errno, strerror)

这应该很简单,但我似乎找不到答案。另外,我提前道歉,因为英语是第二语言。在

编辑:我在前面放了一个print语句,字符串不是空的。
Edit2:如果考虑到这一点,我将使用python2.6。

编辑三:我找到了一个解决我错误的方法。我决定尝试使用IDLE而不是PyCharm来运行我的脚本,它的工作方式就像一个咒语(双关语)。我不知道为什么,但就是这样。为什么会这样?!在


Tags: 文件命令编辑sql错误script情况open
3条回答

下面的代码允许您查看抛出的异常是什么,并查看它的起源跟踪。在

try:
    sqlScript.write(sqlLine)
except:
    print "Unexpected error:", sys.exc_info()[0]
    raise

有关详细信息,请参见http://docs.python.org/tutorial/errors.html。在

你必须把光标放在文件的开头。您可以使用seek方法来完成此操作:

myScript.seek(0)

看到这个答案:https://stackoverflow.com/a/2949648/2119117

根据克里斯·莫里斯的回答,也许可以做些类似的事情:

try:
    sqlScript.write(sqlLine)
except Exception as e:
    print type(e)
    print str(e)

这将捕捉抛出的任何异常(当然,前提是它是Exception的子类),并告诉您类型和错误消息。在

此外,还可以为不同的可能异常定义多个except:情况,因此可以尝试为每个可能引发/引发的异常执行此操作。在

相关问题 更多 >