为何在循环中使用Python print()的end参数时会被打印两次?
问题原因与解决办法
你遇到的现象是因为读取的每行内容自带换行符\n。用for line in file遍历文件时,每一行的字符串末尾都包含原始文件里的换行符,执行print(line, end='1')时,会先输出整行内容(包括换行符),换行后再输出end参数的1,所以看起来下一行开头多了个1。
解决方式:读取行时先移除末尾的换行符,再指定end参数:
for line in file: # 只移除末尾的换行符,保留行首的空格/制表符 print(line.rstrip('\n'), end='1\n')
如果不需要保留行首的空白字符,也可以用strip()简化:
for line in file: print(line.strip(), end='1\n')
要是想让1直接跟在每行内容后不换行,也可以直接拼接字符串打印:
for line in file: print(line.rstrip('\n') + '1')
内容的提问来源于stack exchange,提问作者pyNoob
相关产品推荐
相关产品推荐

