2017-10-19 118 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)) 
相關問題