Python 当我在文件中写入元组时,我丢失了一些值,当我在控制台中打印它时,我得到了所有值
我有这个元组Python 当我在文件中写入元组时,我丢失了一些值,当我在控制台中打印它时,我得到了所有值,python,list,tuples,Python,List,Tuples,我有这个元组 tuple=[(1,0.1),(2,0.2)...(714,7,14)] etc 当我使用print(tuple)时,我在控制台中得到了我期望的结果 [(1,0.1),(2,0.2)...(100,1)] 当我尝试这个: for counter in range (0,100): file.write('{}'.format(tuple)) 我在已经打开的.txt文件中也得到了我所期望的 但当我尝试使用以下命令逐行打印元组时: for j in tuple: fi
tuple=[(1,0.1),(2,0.2)...(714,7,14)] etc
当我使用print(tuple)时,我在控制台中得到了我期望的结果
[(1,0.1),(2,0.2)...(100,1)]
当我尝试这个:
for counter in range (0,100):
file.write('{}'.format(tuple))
我在已经打开的.txt文件中也得到了我所期望的
但当我尝试使用以下命令逐行打印元组时:
for j in tuple:
file.write(' '.join(str(s) for s in j) + '\n')
它并没有写入所有元组,而是在元组末尾丢失了一些值。
这种方法也会发生同样的情况:
for counter in range (0,100):
file.write('{}'.format(Result[counter]))
我使用来自anaconda的python 3.7
我用spyder编写代码,您需要在循环结束时关闭文件,以确保输出缓冲区刷新到文件中 使用上下文管理器确保:
with open("filename", "w") as file:
#any for loop that writes to the file
我认为您需要在写入数据之前对数据进行
pickle
处理,并在阅读后对数据进行unpickle
处理。您的第一个代码不是将完整的元组打印100次吗?这是元组列表,而不是元组。在第一个for
循环中,您的意思是说file.write({}.format(tuple[counter]))
?完成循环后是否关闭文件?您需要这样做才能刷新最后一个缓冲区。