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

在python中遍历大型文件目录系统,获得太多值以至于无法解压缩

在python中遍历大型文件目录系统,获得太多值以至于无法解压缩

largeQ 2021-03-20 15:15:24
我正在使用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


查看完整回答
反对 回复 2021-03-29
  • 1 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

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