两个纯数字TXT文件逐行求和问题:仅能输出第一行结果
嘿,这个问题我熟!你现在只拿到第一行的结果,大概率是代码只处理了一次行读取就结束了,没做循环遍历所有行对吧?下面给你两种常用的解决方案,选你顺手的来:
Python 实现方案
Python处理这种文本文件超直观,核心就是同时遍历两个文件的每一行,逐行相加就行。这里默认你的文件里每行都是纯数字,没有空行或者其他干扰内容:
# 用with语句自动管理文件,不用手动关闭 with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2: # zip会把两个文件的对应行配对,循环处理每一对 for line_f1, line_f2 in zip(f1, f2): # 去掉每行的换行符,转成整数 num1 = int(line_f1.strip()) num2 = int(line_f2.strip()) # 打印结果,要是想保存到文件就把print改成写入操作 print(num1 + num2)
要是你之前的代码是只调用了一次readline()或者read(),那自然只会拿到第一行的数据,换成上面的循环遍历就搞定了。
Bash 命令行方案
如果习惯用命令行快速处理,用paste+awk的组合能一步到位:
# 直接打印结果 paste -d ' ' file1.txt file2.txt | awk '{print $1 + $2}' # 要是想把结果保存到新文件,加个重定向就行 paste -d ' ' file1.txt file2.txt | awk '{print $1 + $2}' > sum_result.txt
简单解释下:
paste -d ' '会把两个文件的对应行用空格拼在一起,变成每行两个数字awk读取每行内容,把第一个字段和第二个字段相加后打印出来
不管用哪种方法,核心都是逐行对应处理所有行,而不是只处理第一行。这样就能得到所有行的求和结果啦!
内容的提问来源于stack exchange,提问作者Jeferson S
相关产品推荐
相关产品推荐

