我正在使用python遍历一个非常大的文件和目录系统。我是从基本目录开始的,我知道该目录经过基本目录的深度不会超过1个文件夹。我正在尝试使用以下代码读取base_directories子文件夹中每个文件的第二行:a_list = [] for dir, files in os.walk(base_directory): for file in files: f=open(file, 'r') for line in f: #reads in the second line if line==1: a_list.append(line) break f.close() 但是我有太多值无法在“对于dir,文件位于os.walk(base_directory)中”这一行中专门解压缩,谢谢您的帮助!
1 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
您应该打开一个三元组的包装
步行(top,topdown = True,onerror = None,followlinks = False) 目录树生成器。 对于根目录在目录树顶部的每个目录(包括顶部 本身,但不包括“。” 和'..'),产生一个三元组 目录路径,目录名,文件名
例如。
for dir, dirnames, files in os.walk(base_directory):
此外,这将无法正常工作。line
是初学者的字符串
for line in f:
#reads in the second line
if line==1:
a_list.append(line)
break
您可以将其更改为这样的内容
for i, line in enumerate(f):
#reads in the second line
if i==1:
a_list.append(line)
break
但是我认为这是一种更简单的方法
import os
a_list = []
for dirpath, dirnames, files in os.walk(base_directory):
for file in files:
with open(os.path.join(dirpath, file), 'r') as f:
next(f) # skip the first line
a_list.append(next(f)) # store the second line
添加回答
举报
0/150
提交
取消