我需要打開名爲'data'的根文件夾,然後獲取該文件夾中的文件夾列表,然後獲取每個文件夾的路徑並執行一些代碼以檢查這些文件夾內部是一個'docx'文件。For循環未執行
如果僅執行這樣的:
rootDir = 'data'
for dirName, subdirList, fileList in os.walk(rootDir):
if dirName == 'data':
pass
else:
print('Found directory: %s' % dirName)
至於結果我得到的所有文件夾
Found directory: data/2014 09 Daily Reports
Found directory: data/2014 11 Daily Reports
Found directory: data/2014 03 Daily Reports
Found directory: data/2015 04 Daily Reports
Found directory: data/2015 03 Daily Reports
Found directory: data/2015 08 Daily Reports
Found directory: data/2014 10 Daily Reports
Found directory: data/2015 07 Daily Reports
.....
的列表,但如果我有這樣的:
rootDir = 'data'
for dirName, subdirList, fileList in os.walk(rootDir):
if dirName == 'data':
pass
else:
dirpath = os.path.abspath(dirName)
for root, dirs, filenames in os.walk(dirpath):
for f in filenames:
os.chdir(dirpath)
fn = f.replace('\xc3\xab','e')
os.rename(f, f.replace('\xc3\xab','e'))
if 'docx' in f:
print 'docx files are found inside this folder'
else:
pass
print('Found directory: %s' % dirName)
如果執行此,結果只有這樣:
Found directory: data/2014 09 Daily Reports
爲什麼for循環不能執行?任何幫助?
我不明白:'os.walk'會自動遍歷'rootDir'中的所有文件或導向器。所有文件,以及子目錄中的文件。你爲什麼想散步散步? – FunkySayu
@FunkySayu也許OP需要在跑步之前學習如何「走路」。 – SuperBiasedMan
看起來你用'os.chdir()'改變了目錄,所以你不再是你想象的那樣。 – kwinkunks