Python 来自多个文件的多个词典
我是Python的初学者,正在尝试让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
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))
这真是太棒了。非常感谢。很乐意提供帮助-如果您觉得这是对您的问题的一个有用的答案,请用复选标记接受它,以便它看起来对所有人都已解决。