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

时间:2017-05-03 12:51:51

标签: python pandas 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找不到它?

1 个答案:

答案 0 :(得分:1)

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

...
with open(os.path.join(root, 'genes.faa.genespercontig.csv'), 'r') as f1:
...

此外,假设您说该文件包含在子目录中,您可能需要遍历dirs函数返回的os.walk变量中的子目录。我注意到你使用字符串'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:
...