Python 在中打开(文件)时,除

Python 在中打开(文件)时,除,python,python-2.7,Python,Python 2.7,在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、 写作也不例外 在同一个

在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、 写作也不例外

在同一个脚本中,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语句中使用,但不能在except中使用?

write()
不接受多个参数;您可能缺少括号:

f.write('%s:%s\n' % (url, e))
除此之外,请使用绝对路径,而不是相对路径,否则很容易将文件写入意外位置。

write()
不接受多个参数;您可能缺少括号:

f.write('%s:%s\n' % (url, e))

除此之外,请使用绝对路径,而不是相对路径,否则您很容易将文件写入意外位置。

除之外的
中的文件操作可以正常工作

>>> try:
    raise SyntaxError("Hello")
except Exception:
    with open("in.txt") as f:
        print "F"


F

除了
之外,在
中的文件操作工作正常

>>> try:
    raise SyntaxError("Hello")
except Exception:
    with open("in.txt") as f:
        print "F"


F

它应该会起作用。请尝试以下示例:

try:
    raise Exception
except Exception:
    with open('error.txt', 'a') as f:
        f.write('foobar')
如果您运行上述命令,您将看到foobar已写入文件


您的进程是否可以写入error.txt?它没有写入您的文件是有原因的,但这并不是因为“with”文件上下文不允许在except块中使用。

它应该可以工作。请尝试以下示例:

try:
    raise Exception
except Exception:
    with open('error.txt', 'a') as f:
        f.write('foobar')
如果您运行上述命令,您将看到foobar已写入文件

您的进程是否可以写入error.txt?有一个原因,它不是写入你的文件,但这不是因为'OF'文件上下文不允许在一个除块。