我想一次更改几个文件,如果我可以写入所有文件.我想知道我是否能以某种方式将多个开放调用与with语句结合起来:
try:
with open('a', 'w') as a and open('b', 'w') as b:
do_something()
except IOError as e:
print 'Operation failed: %s' % e.strerror
Run Code Online (Sandbox Code Playgroud)
如果那是不可能的,那么这个问题的优雅解决方案会是什么样子?
作为使用该unittest框架的某些Python测试的一部分,我需要比较两个相对较短的文本文件,其中一个是测试输出文件,另一个是参考文件。
直接的方法是:
import filecmp
...
self.assertTrue(filecmp.cmp(tst_path, ref_path, shallow=False))
Run Code Online (Sandbox Code Playgroud)
如果测试通过,它会很好地工作,但是即使失败,输出中也没有太多帮助:
AssertionError:假不为真
有没有更好的方法比较两个文件作为unittest框架的一部分,因此在不匹配的情况下会生成一些有用的输出?
我有一个Python函数,它将列表作为参数并将其写入文件:
def write_file(a):
try:
f = open('testfile', 'w')
for i in a:
f.write(str(i))
finally:
f.close()
Run Code Online (Sandbox Code Playgroud)
我该如何测试这个功能?
def test_write_file(self):
a = [1,2,3]
#what next ?
Run Code Online (Sandbox Code Playgroud)