遍历文件系统目录结构
Traversing a file-system directory structure
我正在尝试对目录中的某些文件进行一些处理。我尝试使用的基本结构是文件夹 -> 子文件夹 -> 我需要访问的文件。 data
包含数百个子文件夹,我试图访问每个子文件夹,找到其中以 'params'
结尾的文件,现在只需阅读内容。我的代码如下:
import os
for sub_folder in os.scandir('data'):
os.chdir(sub_folder)
for file in os.scandir(sub_folder):
print(file.name)
if(file.name.endswith('params')):
with open(file.name, 'r') as f:
data = f.read()
我收到 FileNotFoundError
,它告诉我路径 'data\\run.0'
不存在。我已经确认 'run.0'
是 data
中的第一个子文件夹,所以我感到困惑的是路径实际上并不存在。
我知道当我尝试更改目录时发生错误,所以我怀疑我遍历 data
文件夹的方式不是正确的方式。我知道 os.scandir
给出了一个 DirEntry
对象,这就是变量 sub_folder
的意思,但这不是更改目录功能的有效输入吗?
您可以使用 os.walk
,但我更喜欢使用 glob
:参见 How to use Glob() function to find files recursively in Python?
我正在尝试对目录中的某些文件进行一些处理。我尝试使用的基本结构是文件夹 -> 子文件夹 -> 我需要访问的文件。 data
包含数百个子文件夹,我试图访问每个子文件夹,找到其中以 'params'
结尾的文件,现在只需阅读内容。我的代码如下:
import os
for sub_folder in os.scandir('data'):
os.chdir(sub_folder)
for file in os.scandir(sub_folder):
print(file.name)
if(file.name.endswith('params')):
with open(file.name, 'r') as f:
data = f.read()
我收到 FileNotFoundError
,它告诉我路径 'data\\run.0'
不存在。我已经确认 'run.0'
是 data
中的第一个子文件夹,所以我感到困惑的是路径实际上并不存在。
我知道当我尝试更改目录时发生错误,所以我怀疑我遍历 data
文件夹的方式不是正确的方式。我知道 os.scandir
给出了一个 DirEntry
对象,这就是变量 sub_folder
的意思,但这不是更改目录功能的有效输入吗?
您可以使用 os.walk
,但我更喜欢使用 glob
:参见 How to use Glob() function to find files recursively in Python?