outfile = open(inputfile, 'w')
outfile.write(argument)
outfile.flush()
os.fsync(outfile)
outfile.close
这是代码段。我想在python中写一些文件。但是当我们打开文件时,没有任何内容写入其中。我做错了吗?
答案 0 :(得分:5)
您没有调用outfile.close
方法。
无需在此处冲洗,只需正确关闭:
outfile = open(inputfile, 'w')
outfile.write(argument)
outfile.close()
或者更好的是,使用文件对象作为上下文管理器:
with open(inputfile, 'w') as outfile:
outfile.write(argument)
这一切都假设argument
不是空字符串,并且您正在查看正确的文件。如果您在inputfile
中使用相对路径,那么使用的绝对路径取决于您当前的工作目录,您可能会查看错误的文件以查看是否已将某些内容写入其中。
答案 1 :(得分:1)
尝试
outfile.close()
注意括号。
outfile.close
只返回函数对象而不是真正做任何事情。
答案 2 :(得分:0)
在刷新或关闭文件之前,您不会看到已写入的数据。在您的情况下,您没有正确刷新/关闭文件。
* flush the file and not stdout - So you should invoke it as outfile.flush()
* close is a function. So you should invoke it as outfile.close()
所以正确的片段是
outfile = open(inputfile, 'w')
outfile.write(argument)
outfile.flush()
outfile.close()