Python错误;无法使用os.walk找到文件

Python错误;无法使用os.walk找到文件,python,pandas,os.walk,Python,Pandas,Os.walk,在我当前运行python脚本的工作目录中,我有多个子目录,其中都包含文件“genes.faa.genespercontig.csv”。我想创建这些文件的数据帧 当我运行脚本时,会出现以下错误: FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\KLIF\\Documents\\Linda\\genes.faa.genespercontig.csv\\r' 我的脚本如下: import os import pa

在我当前运行python脚本的工作目录中,我有多个子目录,其中都包含文件“genes.faa.genespercontig.csv”。我想创建这些文件的数据帧

当我运行脚本时,会出现以下错误:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\KLIF\\Documents\\Linda\\genes.faa.genespercontig.csv\\r'
我的脚本如下:

import os
import pandas as pd

for root, dirs, files in os.walk(os.getcwd()):
    with open(os.path.join(root, 'genes.faa.genespercontig.csv', 'r')) as f1:
        df1 = pd.read_csv('f1', header=None, delim_whitespace=True, names = ["contig", "genes"]) 
        print(df1)
我确信该文件位于de子目录中,但是python为什么找不到它呢

除非“r”是名为“genes.faa.genespercontig.csv”目录中的文件,否则简单的语法错误。你的括号需要稍微调整一下:

...
with open(os.path.join(root, 'genes.faa.genespercontig.csv'), 'r') as f1:
...
此外,如果您说文件包含在子目录中,则可能需要在
os.walk
函数返回的
dirs
变量中循环子目录。我注意到您使用字符串
'f1'
传递给
pd.read\u csv
,但您可能希望打开文件对象。比如:

import os
import pandas as pd

for root, dirs, files in os.walk(os.getcwd()):
    for subdir in dirs:
        with open(os.path.join(root,subdir,'genes.faa.genespercontig.csv'),'r') as f1:
            df1 = pd.read_csv(f1, header=None, delim_whitespace=True, names = ["contig", "genes"])
            print(df1)
要仅尝试打开实际存在的文件,请使用:

...
filepath = os.path.join(root,subdir,'genes.faa.genespercontig.csv')
if os.path.isfile(filepath):
    with open(filepath, 'r') as f1:
...

我调整了它,但它仍然会给出一个错误,即它没有找到files@Gravel添加了更多细节。我不知道您的目录结构,因此未经测试,但基于您的问题中提供的详细信息是的,这是有效的。谢谢!如果我需要它;如果我有一个子目录不包含这个文件,你能告诉我怎么办吗?因为当我在子目录上循环时,脚本在子目录中找不到该文件,它将停止,并且我希望它比在下一个子目录中继续。@grade添加了代码,以便您仅尝试打开存在的文件