用python写在一个txt文件中循环取出每一行内容,与另一个txt每一行内容比较,如果含有相同的内容,则保存在一个新的txt文件里面
时间: 2023-08-31 11:20:55 浏览: 95
### 回答1:
您好,这个问题可以使用Python的文件操作和字符串比较来实现。以下是一个示例代码:
```python
with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2, open('result.txt', 'w') as result:
# 读取文件1的每一行
for line1 in f1:
# 读取文件2的每一行
for line2 in f2:
# 如果两行内容相同,则将其写入结果文件
if line1 == line2:
result.write(line1)
break
```
其中,`with open()`语句用于打开文件并自动关闭文件,`'r'`表示读取模式,`'w'`表示写入模式。`for`循环用于遍历文件的每一行,`if`语句用于比较两行内容是否相同,`break`语句用于跳出内层循环。最后,将相同的内容写入结果文件中。
希望能对您有所帮助。
### 回答2:
可以使用Python的文件操作和字符串匹配的功能来实现该功能。
首先,我们需要打开原始的txt文件和目标txt文件,并准备一个新的txt文件用于保存匹配结果。假设原始的txt文件名为origin.txt,目标txt文件名为target.txt,保存匹配结果的txt文件名为result.txt。可以使用open()函数来打开这些文件,并设置为读取模式('r')或写入模式('w')。
接下来,我们使用for循环和readlines()函数逐行读取原始txt文件的内容,并使用strip()函数去除每行内容的开头和结尾的空格和换行符。然后,我们再次使用for循环和readlines()函数逐行读取目标txt文件的内容,并同样使用strip()函数处理每行内容。
在每个循环中,我们使用if语句判断原始txt文件的每一行内容是否在目标txt文件的每一行内容中。如果存在相同的内容,则将原始txt文件的该行内容写入result.txt文件中,可以使用write()函数来实现。
最后,记得在循环结束后关闭所有已打开的文件。
以下是一个示例代码:
```python
# 打开原始txt文件和目标txt文件
with open('origin.txt', 'r') as origin_file, open('target.txt', 'r') as target_file:
# 打开新的txt文件用于保存匹配结果
with open('result.txt', 'w') as result_file:
# 逐行读取原始txt文件的内容
for origin_line in origin_file.readlines():
# 去除原始txt文件每行内容的空格和换行符
origin_line = origin_line.strip()
# 逐行读取目标txt文件的内容
for target_line in target_file.readlines():
# 去除目标txt文件每行内容的空格和换行符
target_line = target_line.strip()
# 判断原始txt文件的每一行内容是否在目标txt文件的每一行内容中
if origin_line == target_line:
# 如果存在相同的内容,则将原始txt文件的该行内容写入result.txt文件中
result_file.write(origin_line + '\n')
# 关闭所有打开的文件
origin_file.close()
target_file.close()
result_file.close()
```
该示例中,我们假设原始txt文件和目标txt文件的内容都比较少,可以一次性读入内存。如果文件内容较大,可以考虑逐行读取并处理,以减少内存占用。
### 回答3:
你可以使用以下代码来实现:
```python
# 打开第一个txt文件并逐行读取内容
with open('file1.txt', 'r') as file1:
lines1 = file1.readlines()
# 打开第二个txt文件并逐行读取内容
with open('file2.txt', 'r') as file2:
lines2 = file2.readlines()
# 初始化一个空列表,用于保存相同的内容
same_content = []
# 循环遍历第一个文件的每一行内容
for line1 in lines1:
# 去除行末的换行符
line1 = line1.strip()
# 遍历第二个文件的每一行内容
for line2 in lines2:
# 去除行末的换行符
line2 = line2.strip()
# 如果两行内容相同,则将其添加到same_content列表中
if line1 == line2:
same_content.append(line1)
break # 如果已找到相同的内容,则跳出第二个循环
# 将same_content列表中的内容写入新的txt文件
with open('same_content.txt', 'w') as output_file:
for line in same_content:
output_file.write(line + '\n')
```
注意,你需要将"file1.txt"和"file2.txt"替换为你要读取内容的两个txt文件的路径。最后的相同内容将保存在"same_content.txt"文件中。
阅读全文