когда я пишу кортеж в файл, я теряю некоторые значения, когда я печатаю его в консоли, я получаю их все - PullRequest
0 голосов
/ 09 мая 2019

У меня есть этот кортеж

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])) 

Я использую Python 3.7 от Anaconda Я пишу свой код в Spyder

1 Ответ

1 голос
/ 09 мая 2019

Вам необходимо закрыть файл в конце цикла, чтобы гарантировать, что выходной буфер сбрасывается в файл.

Используйте менеджер контекста, чтобы убедиться в этом:

with open("filename", "w") as file:
    #any for loop that writes to the file
...