1

我在 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() 

但是我得到了太多的值,无法在“for dir, file in os.walk(base_directory)”这一行专门解压感谢您的帮助!

4

1 回答 1

2

你应该解压一个 3 元组

步行(顶部,自上而下 = True,onerror = 无,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
于 2013-05-31T19:48:21.780 回答