遍历一个文件夹所有子文件夹中所有文件,将所有尾缀为dat的文件合并入一个新文本文件,第一列字符串相同的行只保留一行
时间: 2024-10-20 20:17:28 浏览: 23
遍历一个文件夹及其所有子文件夹中的所有文件,并筛选出所有以".dat"结尾的文件,通常可以使用编程语言如Python的os模块来操作目录结构,结合shutil和pandas库处理文件内容。这里是一个简单的步骤描述:
1. 导入库和模块:
```python
import os
import pandas as pd
from glob import iglob
```
2. 定义函数来读取并合并数据:
```python
def merge_files(directory):
data = []
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.dat'):
with open(os.path.join(root, file), 'r') as f:
lines = f.readlines()
# 检查第一列是否已存在,如果存在则跳过,否则添加
line_num = len(data)
for i, line in enumerate(lines):
if not any(line.startswith(lines[j]) for j in range(line_num)):
data.append(line)
# 合并到DataFrame并去重
df = pd.DataFrame(data, columns=[0])
df.drop_duplicates(inplace=True)
return df
```
3. 调用函数并将结果保存到新文件:
```python
output_path = "output.txt"
result = merge_files(start_directory) # 替换start_directory为你需要开始遍历的文件夹路径
result.to_csv(output_path, index=False)
```
4.
阅读全文