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我在两次运行之间删除文件。@Malongewrite
方法并没有真正写入文件,它只是将数据写入缓冲区,您应该使用close方法告诉它将数据刷新到文件中,然后将其关闭。甚至file.flush()
都可以解决他的问题。。。但是使用或关闭通常是更好的解决方案(+1)@Malongewrite
方法并没有真正将数据写入文件,它只是将数据写入缓冲区,您应该使用关闭方法告诉它将数据刷新到文件,然后关闭它。或者甚至file.flush()
可以解决他的问题。。。但一般来说,使用或关闭是更好的解决方案(+1)