修改程序with open('test_1.txt', 'r') as f1, open('test.txt', 'r') as f2, open('1.txt', 'w') as f3: for line1 in f1: columns1 = line1.strip().split() found = False for line2 in f2: columns2 = line2.strip().split() if columns1[0] == columns2[0] and columns1[1] == columns2[1]: f3.write(f"{columns1[0]} {columns1[1]} {columns1[2]}\n") found = True break if not found: f3.write(f"{columns1[0]} {columns1[1]} 0\n") f2.seek(0),在1.txt文件中从第一行开始,每行的第一列数据和第二列数据在2.txt文件中进行查找,查到就将2.txt的第三列数据替换1.txt第三列的数据。把新的数据重新写入3.txt文件中
时间: 2024-03-23 20:38:41 浏览: 48
谈程序的修改技巧
好的,根据你的要求,我修改了程序如下:
```python
with open('test_1.txt', 'r') as f1, open('test.txt', 'r') as f2, open('3.txt', 'w') as f3:
for line1 in f1:
columns1 = line1.strip().split()
found = False
f2.seek(0) # 把文件指针移到文件开头,以便下一次循环
for line2 in f2:
columns2 = line2.strip().split()
if columns1[0] == columns2[0] and columns1[1] == columns2[1]:
f3.write(f"{columns1[0]} {columns1[1]} {columns2[2]}\n")
found = True
break
if not found:
f3.write(f"{columns1[0]} {columns1[1]} 0\n")
```
这个程序会读取test_1.txt和test.txt文件中的数据,然后从test_1.txt文件中逐行读取数据。对于每一行数据,程序会在test.txt文件中进行查找,如果找到了与之匹配的行,则将test.txt中的第三列数据写入3.txt文件中;否则,将0写入3.txt文件中。需要注意的是,在每次循环之后,程序需要把test.txt文件的指针移到文件开头,以便下一次循环。
阅读全文