【发布时间】:2019-08-14 09:22:20
【问题描述】:
我正在尝试获取列表中的一组文件的路径。这些文件位于不同的子文件夹中。我正在使用os.walk 并循环运行不同的文件并将完整路径附加到新的数据帧以在不同的程序中使用。但是代码中有一个错误,只让它运行循环的第一个循环。
代码基于此线程:Need the path for particular files using os.walk()
我在MacOS10.14.6 上使用python3.6
我不确定这是否重要,但目录位于外部硬盘驱动器上。
import pandas as pd
import os
dir = "/Volumes/dir1/dir2"
fastafiles = ["file1", "file2", "file3"]
fastafiles_df = pd.DataFrame(fastafiles)
fasta_paths = []
for fasta in fastafiles_df[0]:
#1
for dir, subdirs, files in os.walk(dir):
for file in files:
if file.endswith(fasta):
#2
fasta_paths.append(os.path.join(dir, file))
#3
运行代码将在fasta_paths 中为我提供一个条目,其中只有第一个文件的路径。
如果我在 #1 处 print(fasta) 我会从我的数据框中获取所有 3 个文件名。
如果我在#2 print(file) 我只会得到 1 个文件名
如果我在#3 print fasta_paths 我会得到第一个文件的路径。
有人能指出循环不继续的原因吗?
【问题讨论】:
标签: python-3.x pandas loops os.walk