将文本文件读入dic文件会导致不完整的dic文件

时间:2016-02-19 17:35:50

标签: python

以下文件2016_01_22_Reps.txt是我要放入python dic文件的扩展收缩列表; “不能”:“不能”,“可能”:“可以”,“可能”:“可能有”,“没有”:“没有”,“没有”:“不“,”不要“:”不要“,”没有“:”没有“,”没有“:”没有“,”没有“:”没有“,”我'll':“我会”,“我是”:“我是”,“我是”:“我有”,“不是”:“不是”,“我会”:“我 请注意,内容是单行,而不是多行。

我的代码如下;

reps = open('2016_01_22_Reps.txt', 'r')
Reps1dic={}
for line in reps:
    x=line.split(",")   
    a=x[0]  
    b=x[1]  
    c=len(b)-1  
    b=b[0:c]        
    Reps1dic[a]=b   
print (Reps1dic)

Reps1dic的输出在前两对收缩后停止。内容如下;

{‘2016_01_22Reps = {“can\’t”:”cannot”‘ : ‘”could\’ve”:”could have’}

非常感谢有关未将完整文件内容写入dic文件的原因的说明和解释。

1 个答案:

答案 0 :(得分:2)

问题是你的值都在一行上,所以你的for line in reps只经过一次迭代。做这样的事情:

with open('2016_01_22_Reps.txt', 'r') as reps:
    Reps1dic={}
    contents = reps.read()
    pairs = contents.split(',')
    for pair in pairs:
        parts = pair.split(':')
        a = parts[0].replace('"', '').strip()
        b = parts[1].replace('"', '').strip()
        Reps1dic[a] = b
print(Reps1dic)

您拆分该行,然后遍历该列表而不是文件中的行。我还使用with keyword打开你的文件 - 这是更好的做法。