如何解决在Python程序中,为什么在编写文件后不能立即显示文件?
| 在创建并写入文件之后,我尝试使用Popen()整理文件。它不起作用。打印p给出两个空元组(\'\',\'\')。为什么呢我已经使用重命名来确保原子写入,如此处所述。#!/usr/bin/env python
import sys,os,subprocess
def run(cmd):
try:
p = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
p.wait()
if p.returncode:
print \"Failed with code: %s\" % str(p.returncode)
return p.communicate()
except OSError:
print \"OSError\"
def main(argv):
t = \"alice in wonderland\"
fd = open(\"__q\",\"w\"); fd.write(t); fd.close; os.rename(\"__q\",\"_q\")
p = run([\"cat\",\"_q\"])
print p
main(sys.argv)
解决方法
您没有致电
close
。使用fd.close()
(您忘记了那里的括号以使其成为实际的函数调用)。可以通过使用“ 3”语句来防止此情况:
with open(\"__q\",\"w\") as fd:
fd.write(t)
# will automatically be closed here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。