用python写 两个txt文件每一行对比 如果不一样则返回该行
时间: 2023-09-12 16:05:58 浏览: 309
python3 读写文件换行符的方法
### 回答1:
非常好!这是一个很好的练习机会。这是一个示例代码,希望能帮到你:
```
# 打开两个文件
with open("file1.txt", "r") as f1, open("file2.txt", "r") as f2:
# 将文件中的每一行存储到列表中
lines1 = f1.readlines()
lines2 = f2.readlines()
# 遍历两个列表
for line1, line2 in zip(lines1, lines2):
# 如果两行不相等
if line1 != line2:
# 输出该行
print(line1)
```
这段代码打开了两个文件,然后将文件中的每一行存储到一个列表中。然后,它使用 Python 的内置函数 `zip` 来遍历两个列表,并对每一对元素进行比较。如果两行不相等,它将输出该行。
希望这能帮到你!
### 回答2:
你可以通过以下Python代码来实现对比两个txt文件中每一行是否相同,并将不同的行返回:
```python
def compare_files(file1, file2):
diff_lines = [] # 存放不同行的列表
with open(file1, 'r') as f1, open(file2, 'r') as f2:
lines1 = f1.readlines() # 读取文件1的所有行
lines2 = f2.readlines() # 读取文件2的所有行
for line_num, (line1, line2) in enumerate(zip(lines1, lines2), start=1):
if line1 != line2:
diff_lines.append(f"第{line_num}行: 文件1中的内容为 '{line1.strip()}', 文件2中的内容为 '{line2.strip()}'")
return diff_lines
# 示例使用
file1 = 'file1.txt'
file2 = 'file2.txt'
different_lines = compare_files(file1, file2)
if different_lines:
print("以下行在两个文件中不一样:")
for line in different_lines:
print(line)
else:
print("两个文件在每一行上都是相同的")
```
上述代码首先定义了一个 `compare_files` 函数,它接受两个txt文件作为参数。函数打开这两个文件并逐行比较它们的内容。如果行内容不同,就将该行信息添加到 `diff_lines` 列表中。
在使用时,你需要指定待对比的txt文件路径。代码会将不同的行信息保存在 `different_lines` 列表中,并进行输出展示。
请注意,上述代码假设两个txt文件具有相同的行数,如果行数不同的话,代码需要进行相应的修改。
### 回答3:
你可以使用Python的文件读取功能和字符串比较函数来实现这个需求。
首先,你需要打开两个txt文件并逐行读取它们的内容。然后,你可以使用`readlines()`函数将每个文件的内容存储为两个分别命名为file1_lines和file2_lines的列表。
接下来,你可以使用`zip()`函数将这两个列表打包成元组的列表,其中每个元组包含两个对应的行。然后,你可以使用循环遍历这个元组列表,比较每一行的内容。
如果两个行不相同,你可以将该行打印出来或者存储到一个新的txt文件中。例如,你可以使用`write()`函数将不同的行写入一个新的txt文件(例如,命名为diff.txt)。代码如下:
```python
file1 = open("file1.txt", "r")
file2 = open("file2.txt", "r")
file1_lines = file1.readlines()
file2_lines = file2.readlines()
file1.close()
file2.close()
diff_lines = []
for line1, line2 in zip(file1_lines, file2_lines):
if line1 != line2:
diff_lines.append(line1) # 或者使用 print(line1) 打印出不同的行
diff_file = open("diff.txt", "w")
diff_file.writelines(diff_lines)
diff_file.close()
```
这样,代码会读取两个txt文件的每一行,并将不同的行写入diff.txt文件中。
阅读全文