使用python批量处理文件夹1、2、3中的.dat文件,去处所有dat文件的头两行,然后合并所有文件夹中相同名称的dat文件,并生成新文件夹保存
时间: 2024-09-24 19:26:48 浏览: 55
在Python中,你可以使用`os`, `glob`, `pandas`等模块来批量处理这个任务。以下是一个简单的步骤概述:
1. 导入必要的库:
```python
import os
import glob
import pandas as pd
```
2. 定义函数来读取和预处理单个`.dat`文件:
```python
def process_file(file_path):
# 去除头部两行
df = pd.read_csv(file_path, header=None, skiprows=range(2))
# 其他数据操作可以添加在这里,例如清洗数据、转换格式等
return df
```
3. 获取所有文件路径并合并文件:
```python
def merge_files(file_names, output_folder):
dfs = []
for file in file_names:
base_name = os.path.basename(file)[:-4] # 去除".dat"
df = process_file(file)
dfs.append(df)
merged_df = pd.concat(dfs, ignore_index=True) # 合并所有文件
# 创建输出文件夹,如果不存在
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 保存合并后的文件
output_file = os.path.join(output_folder, f'merged_{base_name}.csv')
merged_df.to_csv(output_file, index=False)
```
4. 遍历文件夹并应用上述函数:
```python
for folder_number in [1, 2, 3]:
input_folder = f'data/{folder_number}'
output_folder = f'data/merged_{folder_number}'
# 获取每个文件夹下的dat文件列表
dat_files = glob.glob(os.path.join(input_folder, '*.dat'))
merge_files(dat_files, output_folder)
```
运行这段代码后,它会按顺序处理每个文件夹中的`.dat`文件,去除前两行,然后将相同名称的文件合并在一起,并保存到新的文件夹。
阅读全文