如何用Python编写程序,在文件的一行末尾打印一个"字符串"?

0 python file-io python-2.7

input_file 包含: Hi How are you

预期产出是: AHi How are youB

试过以下程序:

input = open("input_file",'r')
output = open("output_file",'w')

for line in input:
    newline = "A" + line + "B"
    output.write(newline)
input.close()
output.close()
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

AHi How are you
B
Run Code Online (Sandbox Code Playgroud)

请建议如何更改程序?

jon*_*rpe 6

当您lineinput文件中读取时,它看起来像:

"Hi How are you\n"
Run Code Online (Sandbox Code Playgroud)

即在行尾包含换行符.因此,添加后'A','B'它看起来像:

"AHi How are you\nB"
              # ^ still has newline
Run Code Online (Sandbox Code Playgroud)

并且您在输出中看到换行符.

删除它的最小修复是添加str.strip()从以下内容的开头和结尾删除所有空格(包括换行符)line:

newline = "A" + line.strip() + "B"
Run Code Online (Sandbox Code Playgroud)

但我建议切换到更现代的字符串格式:

newline = "A{0}B".format(line.strip())
Run Code Online (Sandbox Code Playgroud)