2017-10-19 132 views
1

这可以用python完成,但我想我缺少一种方法来循环所有目录。这里是我使用的代码:包含子文件夹的文件夹,包含多个文件(.xlsm,.pdf,.txt)。如何将.pdf文件重命名为子文件夹的名称?

import os 
def renameInDir(directory): 
    for filename in os.listdir(directory): 
     if filename.endswith(".pdf"): 
     path = os.path.realpath(filename) 
     parents = path.split('/') //make an array of all the dirs in the path. 0 will be the original basefilename 
     newFilename=os.path.dirname(filename)+directory +parents[-1:][0] //reorganize data into format you want 
     os.rename(filename, newFilename)//rename the file 
+0

我没有得到新的文件名应该是这样。您是否想删除PDF扩展名,还是想要替换它? –

+0

你能否告知下面的解决方案是否适合你?如果是这样,你能否接受答案? @Eduardo Valdez –

回答

0

你应该去os.walk()。它将通过给定的目录参数映射目录树,并生成文件名。

使用os.walk()你会实现期望的结果是这样的:

import os 
from os.path import join 
for dirpath, dirnames, filenames in os.walk('/path/to/directory'): 
    for name in filenames: 
     new_name = name[:-3] + 'new_file_extension' 
     os.rename(join(dirpath, name), join(dirpath, new_name)) 
相关问题