在Python脚本的帮助下,使用Excel工作表中的名称映射重命名文件夹中的文件名
文件夹中有许多CSV文件,我想重命名这些文件。有一个excel工作表,其中包含要重命名为文件夹的文件的名称 文件夹中的文件名为 TestData_30April.csv TestData_20April.csv TestData_18April.csv等 而excel工作表包含的名称为 0.25-TestData\u 4月30日 0.98-TestData_204; 4月 0.33-TestData\u 20April等 我的目标是重新命名 “TestData_30April.csv”到“0.25-TestData_30April.csv”,同样适用于所有其他文件 下面是我编写的代码(没有按预期工作) 编辑2: 根据excel文件示例,尝试以下代码:在Python脚本的帮助下,使用Excel工作表中的名称映射重命名文件夹中的文件名,python,xlrd,Python,Xlrd,文件夹中有许多CSV文件,我想重命名这些文件。有一个excel工作表,其中包含要重命名为文件夹的文件的名称 文件夹中的文件名为 TestData_30April.csv TestData_20April.csv TestData_18April.csv等 而excel工作表包含的名称为 0.25-TestData\u 4月30日 0.98-TestData_204; 4月 0.33-TestData\u 20April等 我的目标是重新命名 “TestData_30April.csv”到“0.2
import os
with open('myfile.csv', encoding='utf-8') as f:
buff = f.read()
buff = buff.splitlines()[1:]
for data in buff:
data = data.split(',')
old_name, new_name = data[21] + '.csv', data[23] + '.csv'
if os.path.exists(old_name):
print('changing file name {} to {}'.format(old_name,new_name))
os.rename(old_name, new_name)
else:
print('no file {} with name found in location'.format(old_name))
旧答案
编辑:
以下示例中文件“myfile.csv”的内容为:
0.25-TestData_30April
0.98-TestData_20April
0.33-TestData_20April
如果您在读取文件时遇到问题,请首先确保它是csv格式的文件,并且可以在任何文本编辑器中打开它,如果仍然存在问题,可以尝试使用encoding='utf-8'打开它:
with open('myfile.csv', , encoding='utf-8') as f:
file_names = f.read().split()
你可以试试这个简单的代码,基于你的excel文件是csv文件
import os
with open('myfile.csv') as f:
file_names = f.read().split()
for name in file_names:
new_name = name + '.csv'
old_name = name.split('-')[-1] + '.csv'
if os.path.exists(old_name):
print('changing file name {} to {}'.format(old_name,new_name))
os.rename(old_name, new_name)
else:
print('no file {} with name found in location'.format(old_name))
测试输出:
changing file name TestData_30April.csv to 0.25-TestData_30April.csv
no file TestData_20April.csv with name found in location
no file TestData_20April.csv with name found in location
您能格式化您的代码部分吗?您是否面临特定错误?什么不起作用?当我运行脚本时,文件夹中的文件名没有重命名。您是否收到任何错误消息?始终将完整的错误消息(完整回溯)放在问题中(作为文本,而不是屏幕截图)。还有其他有用的信息.dir_file_name=os.path.join(path_to_folder,name.split('-')[1],'.csv')索引器:列表索引超出范围UnicodedeCodeError:'charmap'编解码器无法解码位置700中的字节0x90:字符映射到@PriyankaMishra确保包含新名称的excel文件是csv格式,如果是,在open()中使用
encoding='utf-8'
,即以open('myfile.csv',encoding='utf-8')作为f:
Sir,在location中找不到名为的文件TestData\u 20April.csv。Sir,excel工作表包含从A列到P列的一些数据,但X列包含要重命名为该文件夹的文件名。您的excel文件是csv文件吗?excel文件的扩展名或类型是什么?
changing file name TestData_30April.csv to 0.25-TestData_30April.csv
no file TestData_20April.csv with name found in location
no file TestData_20April.csv with name found in location