Python 在行尾追加分号

Python 在行尾追加分号,python,Python,我很想知道是否有一种简单的方法可以在每行末尾加上分号。我试过了,但它总是在下一行打印分号 rom_data.txt my_script.py 预期产量 获得的产出 有谁能告诉我哪里出了问题所以你的文本文件是由行组成的。如果您要求查看器显示不可打印的字符,它将显示以下内容 0123\n 1\n 253\n 3\n 或者其他一些标记换行符的符号 for line in input_file: # so here "line" is "0123\n" final= line+';'

我很想知道是否有一种简单的方法可以在每行末尾加上分号。我试过了,但它总是在下一行打印分号

rom_data.txt

my_script.py

预期产量

获得的产出


有谁能告诉我哪里出了问题

所以你的文本文件是由行组成的。如果您要求查看器显示不可打印的字符,它将显示以下内容

0123\n
1\n
253\n
3\n
或者其他一些标记换行符的符号

for line in input_file:  # so here "line" is "0123\n"
    final= line+';'      # here you append a semicolon, so it becomes "0123\n;"
    print final          # print adds another line break, so the output is "0123\n;\n"
一个常见的解决方案是在循环中第一件事就是去除断线:

for line in input_file:
    line = line.strip() # here
    final= line+';'
    print final

@Pavel的解决方案指出了问题所在,但请注意可能存在一些问题

如果初始rom_数据行以某个空白字符开头或结尾,strip函数将删除所有这些字符,这可能与预期不同

例如:

rom_data.txt:

可获得以下输出:

0123\n
123\n
456\n
如果要保留空格,应仅删除最后一个字符:

for line in input_file:
    print(line[:-1]) # use this way to strip only the '\n' character at last

这可能更准确。

问题是第行中存在换行符。您需要使用rstrip剥离换行符。请参阅以下代码:

input_file = open("rom_data.txt", "r")

for line in input_file:
    final= line.rstrip('\n') + ';'
    print final

看起来您可能正在打印末尾包含换行符的行,并在其上加上分号,因此您得到:{content}\n;。你应该考虑从线条的末尾去掉空白。AHE,欢迎来到非打印字符行结尾的世界,等等。字符串中是否有尾随\r\n?请尝试打印lenline.:字符串中保留一个尾随换行符。
for line in input_file:
    line = line.strip() # here
    final= line+';'
    print final
  0123  \n
123  \n
  456\n
0123\n
123\n
456\n
for line in input_file:
    print(line[:-1]) # use this way to strip only the '\n' character at last
input_file = open("rom_data.txt", "r")

for line in input_file:
    final= line.rstrip('\n') + ';'
    print final