微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Python程序中,为什么在编写文件后不能立即显示文件?

如何解决在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 举报,一经查实,本站将立刻删除。