【问题标题】:Printing to file works on Linux but not on Windows?打印到文件在 Linux 上有效,但在 Windows 上无效?
【发布时间】:2013-11-21 04:15:24
【问题描述】:

所以我写了这段代码,它在 Linux 上运行得非常好。

  1. 从文件中读取数据
  2. 做我的代码应该做的任何事情
  3. 将解决方案写入新文件。

这是应该执行此操作的代码部分:

outFile = open( "input.txt", "w" )

for item in oplist:
     outFile.write(item + "\n")

outFile.close

它在 Linux 上运行得非常好,但在 windows 上只创建新的输出文件,但不向其中写入任何内容。

请帮忙!

【问题讨论】:

    标签: python windows file python-3.x output


    【解决方案1】:

    你没有关闭文件;你只是指 close 方法。称呼它:

    outFile.close()
    

    不关闭文件缓冲区在 Python 退出之前不会被刷新。

    处理文件关闭的更好方法是使用with 语句:

    with open( "input.txt", "w" ) as outFile:
        for item in oplist:
            outFile.write(item + "\n")
    

    现在文件自动关闭了。

    【讨论】:

    • 好收获!当我阅读这篇文章时,我完全掩盖了丢失的()。虽然,无论如何,当脚本完成时缓冲区不会被刷新吗?
    • 哦,谢谢你的回答。通常是在编程时杀死我的小错误。忘记括号 _
    • @inspectorG4dget:是的,确实如此,但我猜 OP 没有没有关闭文件。否则,写入本身看起来很好,并且在 Windows 上,仍然打开的文件的行为也有所不同。
    • @inspectorG4dget 脚本完成时缓冲区 DID 刷新 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2014-10-23
    • 2021-01-20
    • 2011-02-21
    相关资源
    最近更新 更多