用Python将文件读入字典

2024-06-01 13:16:44 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图把这些读入字典时,我做错了什么?

我在尝试将值读入字典时遇到以下错误:

Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    ListAllFiles()
  File "C:\Python27\1.py", line 14, in ListAllFiles
    (key, val) = line.split('=')
ValueError: need more than 1 value to unpack

我使用以下代码打开目录中的每个文本文件,并将其内容读入字典:

from __future__ import print_function
import glob
import os

# Let's read all the files into the set
def ListAllFiles():
    mydir="C:\\Python27"
    os.chdir(mydir)
    for file in glob.glob("*.txt"):
        #print(mydir+'\\'+file)
        d = {}
        with open(mydir+'\\'+file) as f:
            for line in f:
               (key, val) = line.split('=')
               d[file] = (key,val)
               print (val)

其中一个文本文件的示例如下:

paramA=Y
paramB=30
paramC=normal
paramD=SOME_ITEM_IN_ALL_CAPS
paramE=5 6 7 8 9 
paramF=/dir/to/stuff
paramG=y

我希望字典是这样的:

+-----------+--------+-----------------------+
| filename1 | paramA | Y                     |
| filename1 | paramB | 30                    |
| filename1 | paramC | normal                |
| filename1 | paramD | SOME_ITEM_IN_ALL_CAPS |
| filename1 | paramE | 5 6 7 8 9             |
| filename1 | paramF | /dir/to/stuff         |
| filename1 | paramG | y                     |
| Filename2 | paramA | A                     |
| Filename2 | paramB | 22                    |
| Filename2 | paramC | st                    |
| Filename2 | paramD | AAAA                  |
| Filename2 | paramE | 5 6 7 8 9             |
| Filename2 | paramF | ff                    |
| Filename2 | paramG | g                     |
| Filename3 | etc    | etc                   |
+-----------+--------+-----------------------+

我可以想象字典是这样的:

d={filename1:(ParamA='A', ParamB='22', Paramc='st'....),filename2:(paramA=...

当我试图把这些读入字典时,我做错了什么?


Tags: tokeyinimport字典linevalglob