Python赢得了';t将小对象写入文件,但将与大对象一起写入

Python赢得了';t将小对象写入文件,但将与大对象一起写入,python,file-io,Python,File Io,这很令人困惑。当我有以下代码时: lista = [i for i in range(10)] file=open("file.txt","a") file.write("\n") file.write("".join(str(lista))) 输出“file.txt”将是一个零字节的空文件。但是当我增加要写入的字符串的大小时 lista = [i for i in range(10000)] # Or larger file=open("file.

这很令人困惑。当我有以下代码时:

lista = [i for i in range(10)]          

file=open("file.txt","a") 
file.write("\n")
file.write("".join(str(lista)))
输出“file.txt”将是一个零字节的空文件。但是当我增加要写入的字符串的大小时

lista = [i for i in range(10000)]      # Or larger    

file=open("file.txt","a") 
file.write("\n")
file.write("".join(str(lista)))
它很好用。虽然这对我来说没有意义,但它的行为就像有一个最小的文件大小来写入输出文件一样。为什么会这样?这个问题是我的计算环境独有的吗

感谢您的帮助。
我正在使用Mac OS Yosemite。Python 3

在将某些内容写入文件后,应该调用
close
方法

lista = [i for i in range(10)]          

file=open("file.txt","a") 
file.write("\n")
file.write("".join(str(lista)))
file.close()
或者使用
with
语句自动关闭文件:

lista = [i for i in range(10)]          

with open("file.txt","a")  as file:
    file.write("\n")
    file.write("".join(str(lista)))

在将某些内容写入文件后,应该调用
close
方法

lista = [i for i in range(10)]          

file=open("file.txt","a") 
file.write("\n")
file.write("".join(str(lista)))
file.close()
或者使用
with
语句自动关闭文件:

lista = [i for i in range(10)]          

with open("file.txt","a")  as file:
    file.write("\n")
    file.write("".join(str(lista)))

适用于Ubuntu和python 3.4。您可能还需要
“”。join(map(str,lista))
两次操作后是否关闭文件?可能是缓冲问题。请看。它对我有效,这些是我的file.txt的内容:[0,1,2,3,4,5,6,7,8,9]@kartikg3我正在运行之间删除该文件。在Ubuntu和python 3.4中有效。您可能还需要
“”。join(map(str,lista))
两次操作后是否关闭文件?可能是缓冲问题。请看。它对我有效,这些是我的file.txt的内容:[0,1,2,3,4,5,6,7,8,9]@kartikg3我在两次运行之间删除文件。@Malonge
write
方法并没有真正写入文件,它只是将数据写入缓冲区,您应该使用close方法告诉它将数据刷新到文件中,然后将其关闭。甚至
file.flush()
都可以解决他的问题。。。但是使用或关闭通常是更好的解决方案(+1)@Malonge
write
方法并没有真正将数据写入文件,它只是将数据写入缓冲区,您应该使用关闭方法告诉它将数据刷新到文件,然后关闭它。或者甚至
file.flush()
可以解决他的问题。。。但一般来说,使用或关闭是更好的解决方案(+1)