Python-从多个文本文件读入字典

时间:2013-03-17 03:07:48

标签: python text dictionary

我正在尝试将两个文件合并到字典中。它们都是文本文件。

第一个文件有州首字母和人口。它看起来像这样:

AL 4447100
AK 626932
AZ 5130632
AR 2673400
CA 33871648
CO 4301261
...

第二个文件具有状态初始和州名称(此时间为每行,而不是并排):

AL
Alabama
AK
Alaska
AZ
Arizona
AR
Arkansas
CA
California
CO
Colorado
...

我正在尝试创建一个看起来像这样的字典

{'Alabama': 4447100, 'Alaska': 626932, ...}

现在,我无法阅读第一个文本文件。当缩写符合时,我如何只读取数字?

第二个文本文件更容易,因为我可以读取每隔一行。

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

您可以使用split,具体取决于您如何阅读数据。

例如:

>>> myStr = 'AL 4447100'
>>> myStr.split(' ')
>>> ['AL', '447100']

答案 1 :(得分:0)

我不会提供完整的解决方案,因为这可能是家庭作业,但你的最后一个应该有这样的代码

d = {}

with open('file1.txt') as f:
    for line in f:
         state, pop = line.split()
         d[states[state]] = int(pop) # states is a dictionary with initials as 
                                     # the  keys and full names as values

答案 2 :(得分:0)

问)现在,我在阅读第一个文本文件时遇到了麻烦。当缩写符合时,我如何只读取数字?

A)您可以使用每行的字符串来删除字符串中的前3个字符(首字母缩写词和空格):

number = lineString[3:]

答案 3 :(得分:0)

假设您有文件states.txtpop.txt

with open("states.txt") as f1:
   x= f1.read().split()
   states = {state:abrv for state,abrv in zip(x[0::2],x[1::2])}

with open("pop.txt") as f2:
   y= f2.read().split()
   pop = {states[abrv]:val for abrv,val in zip(y[0::2],y[1::2])}