我有C ++ / Obj-C背景,而我剛發(fā)現(xiàn)Python(大約寫了一個小時)。我正在編寫一個腳本,以遞歸方式讀取文件夾結(jié)構(gòu)中文本文件的內(nèi)容。我的問題是我編寫的代碼僅適用于一個文件夾較深的地方。我可以看到為什么在代碼中(請參閱參考資料#hardcoded path),我只是不知道如何繼續(xù)使用Python,因為我的經(jīng)驗僅僅是全新的。Python代碼:import osimport sysrootdir = sys.argv[1]for root, subFolders, files in os.walk(rootdir): for folder in subFolders: outfileName = rootdir + "/" + folder + "/py-outfile.txt" # hardcoded path folderOut = open( outfileName, 'w' ) print "outfileName is " + outfileName for file in files: filePath = rootdir + '/' + file f = open( filePath, 'r' ) toWrite = f.read() print "Writing '" + toWrite + "' to" + filePath folderOut.write( toWrite ) f.close() folderOut.close()
3 回答

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊
如果您使用的是Python 3.5或更高版本,則可以在1行中完成此操作。
import glob
for filename in glob.iglob(root_dir + '**/*.txt', recursive=True):
print(filename)
如文檔中所述
如果遞歸為true,則模式**將匹配任何文件以及零個或多個目錄和子目錄。
如果需要每個文件,可以使用
import glob
for filename in glob.iglob(root_dir + '**/*', recursive=True):
print(filename)
- 3 回答
- 0 關(guān)注
- 377 瀏覽
添加回答
舉報
0/150
提交
取消