无法使用python将数据写入文件

时间:2014-02-14 12:59:22

标签: python linux file

outfile = open(inputfile, 'w')
outfile.write(argument)
outfile.flush()
os.fsync(outfile)
outfile.close

这是代码段。我想在python中写一些文件。但是当我们打开文件时,没有任何内容写入其中。我做错了吗?

3 个答案:

答案 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()