python ,批量修改文件名,阅读目录下所有原文件名,逐个根据csv表格vibs_raw_signal_data_file_key列查找,确定对应行数的daq_datetime列内容,删去多余空格,冒号换成-,写成新的文件名
时间: 2024-09-30 08:14:37 浏览: 25
在Python中,你可以使用`os`模块来操作文件和目录,以及`pandas`处理CSV数据。以下是一个基本的步骤来完成这个任务:
1. 首先,导入需要的库:
```python
import os
import pandas as pd
from datetime import datetime
```
2. 确定文件路径和CSV文件路径:
```python
directory = '/path/to/your/directory' # 目录路径
csv_file = '/path/to/vibs_raw_signal_data.csv' # CSV文件路径
```
3. 读取CSV文件,创建一个字典或DataFrame,以便根据`vibs_raw_signal_data_file_key`找到对应的`daq_datetime`值:
```python
data = pd.read_csv(csv_file)
file_dict = dict(zip(data['vibs_raw_signal_data_file_key'], data['daq_datetime']))
```
4. 定义一个函数来生成新文件名,并应用到原始文件名上:
```python
def generate_new_filename(filename, datetime_value):
new_name = filename.replace(' ', '').replace(':', '-') + '-' + datetime_value.strip().strftime('%Y%m%d%H%M%S')
return new_name
def batch_rename(directory, file_dict):
for filename in os.listdir(directory):
if filename.endswith('.txt'): # 或者根据你的文件扩展名过滤
with open(os.path.join(directory, filename), 'r') as f:
content = f.readlines()
# 获取原始datetime并替换
datetime_value = file_dict.get(filename.split('.')[0], '')
new_filename = generate_new_filename(filename, datetime_value)
# 创建新文件
with open(os.path.join(directory, new_filename), 'w') as f:
f.writelines(content)
# 删除旧文件
os.remove(os.path.join(directory, filename))
```
5. 调用批处理函数:
```python
batch_rename(directory, file_dict)
```
阅读全文