当我试图把这些读入字典时,我做错了什么?
我在尝试将值读入字典时遇到以下错误:
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=...
当我试图把这些读入字典时,我做错了什么?
您很可能在其中一个文件中有一个空行。你知道吗
用
if line:
或try
…except
保护这部分代码相关问题 更多 >
编程相关推荐