为了账号安全,请及时绑定邮箱和手机立即绑定

Python递归文件夹读取

Python递归文件夹读取

C++
森林海 2019-12-10 11:08:28
我有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)



查看完整回答
反对 回复 2019-12-11
  • 3 回答
  • 0 关注
  • 353 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信