7、编程题: 有一个voiceFile 文件夹内的50个后缀是*pcm 文件名称都需要修改,文件后缀保留,修改的名称参考: rename.csv 中的影射关系,第一列是文件原来的名字第二列是文件现在的名字,每行都有影射关系(第一列老名字,第二列是对应的新名字),要求将文件夹的文件都名称都改成 B 列的名字- 不限制语言。
时间: 2024-03-17 13:45:32 浏览: 110
这道编程题要求将一个文件夹内50个pcm文件的文件名修改为另一个文件名,修改的规则在一个csv文件(rename.csv)中给出,每一行对应一个文件名的修改规则。具体步骤如下:
1. 读取rename.csv文件,将每一行的第一列作为原文件名,第二列作为新文件名,保存到一个字典中,方便后面进行文件名的修改操作。
2. 遍历voiceFile文件夹,找到所有以pcm为后缀的文件。
3. 对于每一个文件,从字典中查找对应的新文件名,如果找到了则将文件名修改为新文件名。
4. 修改完成后,输出修改成功的文件名列表。
代码实现:
```python
import os
import csv
# 读取rename.csv文件,将文件名修改规则保存到字典中
rename_dict = {}
with open('rename.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
rename_dict[row[0]] = row[1]
# 遍历voiceFile文件夹,找到所有以pcm为后缀的文件,并修改文件名
success_list = []
for filename in os.listdir('voiceFile'):
if filename.endswith('.pcm'):
old_name = os.path.join('voiceFile', filename)
new_name = os.path.join('voiceFile', rename_dict.get(filename, filename))
os.rename(old_name, new_name)
success_list.append(new_name)
# 输出修改成功的文件名列表
print('修改成功的文件名列表:')
for filename in success_list:
print(filename)
```
以上代码通过读取csv文件,将pcm文件的修改规则保存到字典中,再遍历文件夹内的所有pcm文件,查找对应的修改规则,修改文件名后输出成功修改的文件名列表。