我有C ++ / Obj-C背景,而我刚发现Python(大约写了一个小时)。我正在编写一个脚本,以递归方式读取文件夹结构中文本文件的内容。我的问题是我编写的代码仅适用于一个文件夹较深的地方。我可以看到为什么在代码中(请参阅参考资料#hardcoded path),我只是不知道如何继续使用Python,因为我的经验仅仅是全新的。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贡献1884条经验 获得超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 关注
- 353 浏览
添加回答
举报
0/150
提交
取消