从源目录开始;
< C:/ Users / Public / Env Defense / Projects / 1_Earnings Calls / Quarterly Earnings Calls / 1_IOUs by Quarter / 2013 Q1 / AAA Done /
源目录中有多个子目录;例如
< / Users / Public / Env Defense / Projects / 1_Earnings Calls / Quarterly Earnings Calls / 1_IOUs by Quarter / 2013 Q1 / AAA Done / AEP
/用户/公共/环境防御/项目/ 1_Earnings呼叫/季度收益呼叫/ 1_IOUs按季度/ 2013 Q1 / AAA DONE / Allete
在每个子目录中都有多个文件,其名称中包含常用单词,例如;
* 2013年第一季度AEP收益调用Transcript.txt
* 2013年第一季度AEP收益调用Transcript.txt
* 2013年Q1 ALLETE收益调用Transcript.docx
* 2013年第一季度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行,in os.rename(filename,filename.replace(“Earnings Call Transcript”,''))
FileNotFoundError:[WinError 2]系统找不到指定的文件: '/ Users / Public / Env Defense / Projects / 1_Earnings Calls / Quarterly Earnings Calls / 1_IOUs by Quarter / 2013 Q1 / AAADONE \ 2013 Q1 AEP Earnings Call Presentation.pdf' - >
'/ Users / Public / Env Defense / Projects / 1_Earnings Calls / Quarterly Earnings Calls / 1_IOUs by Quarter / 2013 Q1 / AAA DONE \ 2013 Q1 AEP Earnings Call Presentation.pdf'
我已经研究了递归重命名文件的代码,我写的代码看起来类似于有效的例子。关于问题是什么以及如何纠正脚本的任何建议都将不胜感激。
干杯,BobS
答案 0 :(得分:1)
WinError是由文件路径超过260个字符引起的。我编辑了目录名称以减少字符数,并且脚本按预期工作。能够快速编辑名称是非常有帮助的,因为我正在使用20个目录,每个目录包含大约40个子目录,每个子目录包含大约5个文件。幸运的是有人发布文件路径长度的问题!!