我正在尝试获取一个巨大的字符串文件的输出。我正在使用以下代码生成文本文件,但仅生成了预期输出的最后一个字母。我也使用.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
任何帮助将不胜感激。
答案 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)