Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,重定向到文件的打印有时会导致打印输出不完整_Python_File - Fatal编程技术网

在python中,重定向到文件的打印有时会导致打印输出不完整

在python中,重定向到文件的打印有时会导致打印输出不完整,python,file,Python,File,我想将列表保存到一个文件中,所以我循环浏览它并将其写入文件。一切都很好。但有时(列表?)列表不是完全写入的,它在项目中间停止渲染。不会引发任何错误,它将以静默方式继续执行其余代码。 我尝试了几种编写方法,python的几种版本(2.4、2.5、2.7)都是一样的。它有时有效,有时无效。当它打印到终端窗口而不是文件时,它工作正常,没有出现故障。我错过什么了吗 就是这个 ... from bpnn import * ... # save input weights for later

我想将列表保存到一个文件中,所以我循环浏览它并将其写入文件。一切都很好。但有时(列表?)列表不是完全写入的,它在项目中间停止渲染。不会引发任何错误,它将以静默方式继续执行其余代码。 我尝试了几种编写方法,python的几种版本(2.4、2.5、2.7)都是一样的。它有时有效,有时无效。当它打印到终端窗口而不是文件时,它工作正常,没有出现故障。我错过什么了吗

就是这个

...    

from bpnn import *

...

# save input weights for later use:
writewtsi = open("c:/files/wtsi.txt", "w")
for i in range(net.ni):
    print>>writewtsi, net.wi[i]
bpnn是此处的神经网络模块:

如果使用以下方法,问题是否仍然存在:

with open("c:/files/wtsi.txt", "w") as writewtsi:
    for i in range(net.ni):
        print>>writewtsi, net.wi[i]            

完成所有写入操作后关闭该文件,以确保所有写入缓存都通过以下方式刷新到驱动器:

writewtsi.close()
使用

像这样:

...     
from bpnn import *
...

# save input weights for later use:
writewtsi = open("c:/files/wtsi.txt", "w")
for i in range(net.ni):
    print>>writewtsi, net.wi[i]
    writewtsi.flush()
或者,您可以使用第三个参数open()取消缓冲文件:

是的,就是这样。flush()和close()都能很好地完成这项工作。非常感谢。是的,就是这样。flush()和close()都能很好地完成这项工作。谢谢。
...     
from bpnn import *
...

# save input weights for later use:
writewtsi = open("c:/files/wtsi.txt", "w")
for i in range(net.ni):
    print>>writewtsi, net.wi[i]
    writewtsi.flush()
...     
from bpnn import *
...

# save input weights for later use:
writewtsi = open("c:/files/wtsi.txt", "w", 0)
for i in range(net.ni):
    print>>writewtsi, net.wi[i]