簡體   English   中英

如何在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 需要在路徑中使用正斜杠,並且使用\\排除字符串的結尾引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM