Python不会将小对象写入文件,但会使用大对象

时间:2014-12-17 23:48:05

标签: 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.txt","a") 
file.write("\n")
file.write("".join(str(lista)))

工作正常。虽然它对我没有意义,但它的行为就像是有一个最小的文件大小来写入输出文件。为什么是这样?这个问题在我的计算环境中是独一无二的吗?

感谢任何帮助。 我正在使用Mac OS Yosemite。 Python 3.

1 个答案:

答案 0 :(得分:4)

在将内容写入文件后,您应该调用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)))