python实现文本打开后过滤去重复的信息
时间: 2024-10-08 14:14:40 浏览: 17
在Python中,我们可以使用文件操作和数据处理技巧来打开文本文件并过滤掉重复信息。这里可以借助一些集合(set)的特性,因为集合只包含唯一的元素。以下是一个简单的例子:
```python
def filter_duplicates(file_path):
with open(file_path, 'r', encoding='utf-8') as f: # 打开文件
lines = f.readlines() # 读取所有行
unique_lines = [] # 存储不重复的行
for line in lines:
if line not in unique_lines: # 如果行不在已有的唯一行列表中
unique_lines.append(line) # 就添加到新的列表里
with open('filtered_file.txt', 'w', encoding='utf-8') as f: # 写入过滤后的内容
f.writelines(unique_lines)
# 调用函数并传入需要过滤重复的文件路径
filter_duplicates('input.txt')
```
在这个示例中,我们首先读取文件的所有行,然后遍历每一行,如果该行还未出现在`unique_lines`列表中,就将其加入。最后,我们将过滤后的结果写入一个新的文件。
相关问题
linux python将目录下utc开头的文件名字提取到指定路径文本,并且文本第一行写demo_test,去除与第一行重复的行
可以使用以下Python代码实现:
```python
import os
# 指定目录路径和输出文本路径
dir_path = "/path/to/directory"
output_path = "/path/to/output/text"
# 获取目录下所有文件名
file_names = os.listdir(dir_path)
# 过滤出符合条件的文件名
utc_file_names = [name for name in file_names if name.startswith("utc")]
# 写入文本
with open(output_path, "w") as f:
f.write("demo_test\n")
for name in set(utc_file_names):
f.write(name + "\n")
```
解释一下代码:
1. 首先需要导入os模块,它提供了访问操作系统功能的接口,包括文件和目录操作。
2. 然后指定目录路径和输出文本路径,可以根据需求进行修改。
3. 使用os.listdir()函数获取目录下所有文件名。
4. 使用列表推导式过滤出符合条件的文件名,即以"utc"开头的文件名。
5. 打开输出文本并写入内容。首先写入第一行"demo_test\n",然后用set()函数去除重复的文件名,最后遍历文件名集合并写入文本。注意使用"\n"换行符来换行。
阅读全文