Python 来自多个文件的多个词典

Python 来自多个文件的多个词典,python,function,file,dictionary,Python,Function,File,Dictionary,我是Python的初学者,正在尝试让Python读取多个文件,并为每个文件制作一个字典。我已经做了一个函数来读取一个文件并将其放入字典,但是当我尝试应用到多个文件时,它告诉我没有这样的文件或目录,即使我认为我已经提供了它。我正试图让它从文件夹中的所有文件制作一本字典。这是我的密码 from typing import Dict gene_region = '>' def parse_sequences(filename) -> Dict[str, str]: resul

我是Python的初学者,正在尝试让Python读取多个文件,并为每个文件制作一个字典。我已经做了一个函数来读取一个文件并将其放入字典,但是当我尝试应用到多个文件时,它告诉我没有这样的文件或目录,即使我认为我已经提供了它。我正试图让它从文件夹中的所有文件制作一本字典。这是我的密码

from typing import Dict

gene_region = '>'

def parse_sequences(filename) -> Dict[str, str]:

    result = {}

    last_name = None
    with open(filename) as sequences:
        for line in sequences:
            if line.startswith(gene_region):
                last_name = line[1:-1]
                result[last_name] = []
            else:
                result[last_name].append(line[:-1])

    for name in result:
        result[name] = ''.join(result[name])

    return result

import os

dirname = str(input('Please enter the folder directory:'))

for filename in os.listdir(dirname):

     parse_sequences(filename)```
下面是它给我的错误:

FileNotFoundError
回溯(最近一次呼叫最后一次)
在里面
34用于os.listdir(dirname)中的文件名:
35
--->36解析_序列(文件名)
在parse_序列中(文件名)
9
10姓氏=无
--->11打开(文件名)作为序列:
12对于序列中的行:
13如果线路起始(基因区):
FileNotFoundError:[Errno 2]没有这样的文件或目录:“3163_3.fa”
os.listdir(dir)
只返回
dirname
中文件的文件名,而不是整个路径,因此如果您列出
gene_文件
,并且它包含
example.dat
,它将返回
example.dat
,而不是
gene_文件/example.dat
,这正是您所需要的。您只需将文件名添加到路径:

for filename in os.listdir(dirname):
     parse_sequences(os.path.join(dirname, filename))

这真是太棒了。非常感谢。很乐意提供帮助-如果您觉得这是对您的问题的一个有用的答案,请用复选标记接受它,以便它看起来对所有人都已解决。