Python 递归文件夹读取
使用 Python 脚本递归读取文件夹结构中文本文件的内容时会出现此问题。然而,提供的初始代码遇到了只能读取一个文件夹深度的限制。
问题识别
问题在于硬编码路径:outfileName = rootdir "/"文件夹“/py-outfile.txt”。此路径假设目标文件位于根目录下的一个子文件夹。
解决方案
要解决此限制,我们需要了解 os. walk:
我们应该使用 os.path.join 来组合 root 和文件,而不是使用 filePath = rootdir '/' 文件: filePath = os.path.join(root, file)。这种方法使我们能够正确地浏览文件夹层次结构。
修订后的代码
这是代码的修订版本:
import os import sys walk_dir = sys.argv[1] print('walk_dir = ' + walk_dir) # Convert to absolute path (recommended if the working directory may change during execution) walk_dir = os.path.abspath(walk_dir) print('walk_dir (absolute) = ' + os.path.abspath(walk_dir)) for root, subdirs, files in os.walk(walk_dir): print('--\nroot = ' + root) list_file_path = os.path.join(root, 'my-directory-list.txt') print('list_file_path = ' + list_file_path) with open(list_file_path, 'wb') as list_file: for subdir in subdirs: print('\t- subdirectory ' + subdir) for filename in files: file_path = os.path.join(root, filename) print('\t- file %s (full path: %s)' % (filename, file_path)) with open(file_path, 'rb') as f: f_content = f.read() list_file.write(('The file %s contains:\n' % filename).encode('utf-8')) list_file.write(f_content) list_file.write(b'\n')
This修改后的代码现在将递归遍历整个文件夹结构并将每个文件的内容写入指定的list_file_path。
以上是如何在Python中递归读取超过一级子目录的文件夹内容?的详细内容。更多信息请关注PHP中文网其他相关文章!