输出文本文件仅包含预期结果的最后一个字母

时间:2019-01-18 12:51:37

标签: python-3.x text return

我正在尝试获取一个巨大的字符串文件的输出。我正在使用以下代码生成文本文件,但仅生成了预期输出的最后一个字母。我也使用.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 :(得分:0)

发生此问题的原因是,您使用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)