python для l oop добавить строку в новую строку - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь добавить новую информацию в a для l oop в новую строку, а затем записать ее в текстовый файл. Простой пример кода вызывает у меня проблемы:

ID = "A1"
val = 0.4

tmp = []

for i in range(0,10):
    aa = (ID + ',' + repr(val))
    tmp.append(aa)

text_file = open("output.txt", "w")
text_file.write("%s\n" % tmp)

Однако содержимое файла output.txt выглядит так:

['A1,0.4', 'A1,0.4', 'A1,0.4', 'A1,0.4', 'A1,0.4', 'A1,0.4', 'A1,0.4', 'A1,0.4', 'A1,0.4', 'A1,0.4']

В то время как я хотел бы, чтобы каждая итерация внутри l oop на новой строке:

['A1,0.4'
'A1,0.4'
...
...
'A1,0.4']

Я знаю, что добавление новой строки '\ n' должно работать, но это просто добавление этого в виде текста, а не работа в качестве новой строки. Некоторые из этих файлов имеют длину 1000 строк, поэтому открытие текстового файла и запись выходных данных каждый раз будет очень трудоемким, в отличие от создания одного большого массива и его вывода в текстовый файл в конце?

Ответы [ 2 ]

1 голос
/ 18 марта 2020

Было бы намного проще использовать соединение, как это

ID = "A1"
val = 0.4

tmp = []

for i in range(0,10):
    aa = (ID + ',' + repr(val))
    tmp.append(aa)

data = '[{}]'.format('\n'.join(tmp))
text_file = open("output.txt", "w")
text_file.write(data)
1 голос
/ 18 марта 2020
ID = "A1"
val = 0.4

tmp = []

for i in range(0, 10):
    aa = (ID + ',' + repr(val) + "\n")
    tmp.append(aa)

text_file = open("output.txt", "w")

for i in range(0, 10):
    text_file.write("{}".format(tmp[i]))

Этот код производит следующий вывод:

A1,0.4
A1,0.4
...
A1,0.4

Это то, что вы имели в виду?

...