在我当前的工作目录中,我运行我的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找不到它?
答案 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:
...