在try ... except块中,我想将异常错误消息记录到except路径中的文件中。
try:
doc = etree.parse(urllib2.urlopen(url))
except Exception, e:
print '%s: %s' % (e, url)
with open('error.txt', 'a') as f:
f.write('%s:%s\n' % url, e)
return
打印显示错误,但打开... f.write时不会显示错误。
在同一个脚本中,relaxng验证被写入文件
if not RELAXNG.validate(doc):
with open('error.txt', 'a') as f:
f.write('%s\n' % RELAXNG.error_log)
return
有人可以向我解释,为什么
with open('myfile.txt', 'a') as f
f.write( ...
在 if 语句中是可能的,但在中除之外没有?
答案 0 :(得分:4)
write()
不接受多个参数;你可能缺少括号:
f.write('%s:%s\n' % (url, e))
除此之外,使用绝对路径,而不是相对路径,因为您可以轻松地在意外的地方写入文件。
答案 1 :(得分:0)
except
内的文件操作正常。
>>> try:
raise SyntaxError("Hello")
except Exception:
with open("in.txt") as f:
print "F"
F
答案 2 :(得分:0)
它应该工作。试试这个例子:
try:
raise Exception
except Exception:
with open('error.txt', 'a') as f:
f.write('foobar')
如果你运行上面的内容,你会看到foobar被写入档案。
您的流程是否可以写入error.txt?有一些原因它没有写入你的文件,但并不是因为在一个except块中不允许使用'with'文件上下文。