python ,批量修改文件名,阅读目录下所有原文件名,逐个根据csv表格vibs_raw_signal_data_file_key列查找,确定对应行数的daq_datetime列内容,删去多余空格,写成新的文件名
时间: 2024-09-30 19:13:43 浏览: 41
VMware_ESXi_7.0_update1
在Python中,你可以使用os、re(正则表达式)、pandas等库来批量修改文件名。首先,你需要遍历指定目录下的所有文件,读取CSV数据,然后根据指定的键值对进行匹配并操作文件名。这里是一个简单的步骤:
1. 导入必要的库:
```python
import os
import pandas as pd
import re
```
2. 定义函数来处理单个文件:
```python
def rename_files(input_dir, csv_path):
# 读取CSV数据
data = pd.read_csv(csv_path)
# 遍历目录中的文件
for filename in os.listdir(input_dir):
# 使用os.path.join()组合原始路径和文件名
file_path = os.path.join(input_dir, filename)
# 如果文件不是目录,检查是否需要重命名
if not os.path.isdir(file_path) and filename.endswith('.txt'): # 这里假设.txt是你要替换的文件类型
# 根据CSV数据找到对应的日期时间
match_row = data[data['vibs_raw_signal_data_file_key'] == filename]
daq_datetime = match_row.iloc[0]['daq_datetime'].strip()
# 删除多余的空格,并创建新文件名
new_filename = re.sub(r'\s+', '_', daq_datetime + '.txt')
# 创建新文件路径
new_file_path = os.path.join(input_dir, new_filename)
# 重命名文件
os.rename(file_path, new_file_path)
```
3. 调用上述函数,传入目标目录和CSV文件路径:
```python
input_dir = 'your_directory_path' # 替换为你需要修改文件的目录
csv_path = 'file_key_mapping.csv' # 替换为包含关键信息的CSV文件路径
rename_files(input_dir, csv_path)
```
阅读全文