如何读取python目录下的所有文件,并将文件数据保存到字典中

How to read all the files of a directory in python and save file data in a dictionary

我的一个文件夹里有很多文件。它们以 .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()}

或者,如果你能给我一些新方法来读取所有文件的内容,然后将其存储在字典中。请在这方面帮助我。谢谢。

假设您发布的代码中的循环有效 - 下面的代码应该创建您要查找的字典。

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()

我的解决方案:

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)

这样应该可以。

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 需要路径中的正斜杠,并且使用 \ 排除了字符串的结尾引号。