Python错误;找不到 os.walk 的文件

Python error; can not find file with os.walk

在我 运行 我的 python 脚本所在的当前工作目录中,我有多个子目录,它们都包含文件 'genes.faa.genespercontig.csv'。我想为这些文件创建一个 pandas 数据框。

当我 运行 我的脚本时,我收到错误:

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_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:
...