Python3读取多txt文件内容拼接输出意外换行如何解决?
问题根因
readlines()读取的每一行内容默认会保留末尾的换行符\n,你直接把三个带换行符的字符串拼接,自然会出现每个字段单独占一行的情况。- 循环内反复打开
generated.txt执行追加写入,会产生多余的IO开销,还有概率因为文件缓冲问题出现内容拼接异常。
修复代码
# 读取时仅删除每行末尾的换行符,保留行内首尾的空格等有效字符 with open('user.txt', 'r') as f: user = [line.rstrip('\n') for line in f] with open('color.txt', 'r') as f: color = [line.rstrip('\n') for line in f] with open('number.txt', 'r') as f: number = [line.rstrip('\n') for line in f] # 仅打开一次输出文件,完成所有写入操作,提升效率也避免异常 # 不需要保留旧输出内容用'w'模式,需要追加旧内容就换成'a+' with open('generated.txt', 'w') as out_f: for u in user: for c in color: for n in number: # 整行拼接完成后统一加换行符 generated = u + c + n + '\n' print(generated.rstrip('\n')) out_f.write(generated)
如果需要三个字段之间加分隔符(比如空格、逗号),把拼接逻辑改成u + ',' + c + ',' + n + '\n即可。
内容的提问来源于stack exchange,提问作者esiquiel
相关产品推荐
相关产品推荐

