我的文件夹中有很多文件。它们以.txt格式成千上万。我想阅读所有这些文档,并希望将文档内容存储在字典中。词典的关键字可以是文档名称,值应该是该特定文档的内容。但是现在,我只能打印文件的所有名称,而无法创建可以存储其内容的字典。我已经编写了这段代码:
import os
with os.scandir('docs/') as entries:
for entry in entries:
print(entry.name)
with open('F:\folder\docs\'+entry.name) as f:
contents = {'entry.name': f.read()}
或者,如果您可以给我一些新方法来读取所有文件中的内容,然后将其存储在字典中。请在这方面帮助我。谢谢。
答案 0 :(得分:0)
假设您发布的代码中的循环有效-以下代码将创建您要查找的字典。
import os
data = {}
with os.scandir('docs/') as entries:
for entry in entries:
with open('F:\folder\docs\'+entry.name) as f:
data[entry.name] = f.read()
答案 1 :(得分:0)
我的解决方案:
import os
import json
all_files = dict()
with os.scandir() as entries:
for entry in entries:
print(entry.name)
with open(rf'{entry.name}') as f:
contents = f.read()
all_files[f'{entry.name}'] = contents
with open('all_files.json', 'w') as f:
json.dump(all_files, f, indent=2)
答案 2 :(得分:0)
这种方式应该可以工作。
import os
docs_dict = {}
with os.scandir('docs/') as entries:
for entry in entries:
print(entry.name)
with open('F:/folder/docs/'+ entry.name ) as f:
val = f.read()
docs_dict[f.name] = val
f.close()
我在for
循环之外创建了一个空字典。然后,扩展您的代码,我将文档的内容存储在val
中,然后添加了字典项。我也将F:\folder\docs\
更改为F:/folder/docs/
,因为Python希望在路径中使用正斜杠,并使用\
排除了字符串的结尾引号。