Выходной текстовый файл содержит только последнюю букву ожидаемого результата - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь получить вывод, который представляет собой огромный строковый файл. Я использую следующий код для генерации текстового файла, но генерируется только последняя буква ожидаемого вывода. Я также использую .loc для разделения входного файла и создания файла, содержащего только указанную строку.

>     for l in Y:
>       print(l, end = '')
>     
>     with open("abc.txt", "w") as text_file:
>       print(f'> \n{l}', file=text_file)

Я получаю следующий результат:

> К Вот и все. Я ожидаю, что вывод будет серией строк, таких как:

> ABCD ... K

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 18 января 2019

Проблема возникает потому, что для форматирования текста вы используете f-строку (f"> \n{l}") и передаете переменную l в эту f-строку.Хотя ваша переменная l была установлена ​​в последний раз на последней итерации предыдущего цикла, вы печатаете последний элемент Y в вашем файле.

Правильный синтаксис будет:

 with open("abc.txt", "w") as text_file:
     print(f'> \n{Y}', file=text_file) 

Или, может быть, это ваш абзац неправильный, и вы хотели это сделать:

 for l in Y:
   print(l, end = '')

   with open("abc.txt", "w") as text_file:
     print(f'> \n{l}', file=text_file)

Кроме того, я бы порекомендовал сделать что-то вроде этого:

with open("abc.txt", "w") as f:
    for l in Y:
        f.write(f'> {l}\n')

Или еще лучше, если это возможно:

with open("abc.txt", "w") as f:
    f.writelines(Y)
...