从源目录开始;以递归方式更改目录中的文件名称
< C:/用户/公共/ env的防御/项目/ 1_Earnings电话/季度收益电话/ 1_IOUs通过四分之一/ 2013 Q1/AAA完成/
有源目录内多个子目录;例如
< /用户/公共/ env的国防/项目/ 1_Earnings电话/季度收益按季度电话/ 1_IOUs/2013 Q1/AAA完成/ AEP
/用户/公共/ env的国防/项目/ 1_Earnings 2013年第一季度/第四季度的收益/ 1_IOU第一季度/ AAA完成/ Allete
在每个子目录内有多个文件,
* 2013 Q1 AEP收入电话Transcript.txt
* 2013 Q1 AEP收入电话Transcript.txt
* 2013 Q1 ALLETE收入电话Transcript.docx
* 2013 Q1 AEP收入电话介绍.pdf'
我正在编写一个脚本来遍历子目录并删除一些常用词。例如,我希望2013年第一季度AEP收益电话会议Transcript.txt将成为2013年第一季度AEP.txt
我写的脚本是; FileRename_V1.py
import os
cwd = os.getcwd()
print (' 1 Working Directory is %s' %cwd)
print (' ')
sourcedir = '/Users/Public/Env Defense/Projects/1_Earnings Calls/Quarterly Earnings Calls/1_IOUs by Quarter/2013 Q1/AAA Done'
os.chdir (sourcedir)
cwd = os.getcwd()
print (' 2 Working Directory is %s' %cwd)
print (' ')
for dirPath, subdirNames, fileList in os.walk (sourcedir):
for filename in fileList:
filename = os.path.join (dirPath, filename)
os.rename(filename,filename.replace("Earnings Call Transcript", ''))
结果是以下错误消息;
回溯(最近通话最后一个): 文件 “FileRename_V1.py”,第29行,在 os.rename(文件名,filename.replace( “收入电话抄本”, ''))
FileNotFoundError :[WinError 2]系统找不到指定的文件: '/ Users/Public/Env Defense/Projects/1_Earnings Calls/Quarterly Earnings Calls/1_IOUs 2013/Quarter Q1/AAADONE \ 2013 Q1 AEP Earnings Call Presentation.pdf' - >
'/ Users/Public/Env Defense/Projects/1_Earnings Calls/Quarterly Earnings Calls/1_IOUs 2013年第一季度/ 2013年第一季度/ 2013年第一季度AEP收益电话Presentation.pdf'
我已经研究了递归重命名文件的代码,并且我写的代码看起来类似于工作的示例。任何关于问题是什么以及如何纠正脚本的建议都将非常感谢。
干杯,BobS
不应该先通过所有文件,存储所有需要重命名的文件,然后重命名它们中的每一个?重命名文件/目录同时走他们听起来有点棘手。 –
您在文件路径中混合了正斜杠和反斜杠: '/ Users/Public/Env Defense/Projects/1_Earnings Calls/Quarterly Earnings Calls/1_IOUs by 2013/Q1 Q1/AAA DONE \ AEP Earnings Call Presentation.pdf' – Andrew
当os.rename遇到第一个子目录中的第一个文件时,错误消息被抛出。 – RJS