从txt中提取前面有单词的数字。python中的文件

从txt中提取前面有单词的数字。python中的文件,python,file,extraction,Python,File,Extraction,我试图从一个国家名称后的单独文件中提取特定数字。代码似乎没有显示任何输入,我几乎不知道我在做什么 它显示了产出,但仅显示了没有预期寿命数据或基尼数据的其他数据 下面是我从中提取的文件的一个示例 1: Lesotho :63.2 2: South Africa

我试图从一个国家名称后的单独文件中提取特定数字。代码似乎没有显示任何输入,我几乎不知道我在做什么

它显示了产出,但仅显示了没有预期寿命数据或基尼数据的其他数据

下面是我从中提取的文件的一个示例

1:      Lesotho                                            :63.2                                              

2:      South Africa                                       :62.5                                              

3:      Central African Republic                           :61.3                                              

4:      Micronesia, Federated States of                    :61.1                                              

5:      Haiti                                              :60.8     
这是我到目前为止的代码

country = []
info = [] 
def countryFinder(fileName,info):

    infile = open(fileName, "r")
    line = infile.readline()

    for line in infile:
        fields = line.split(":")
        country.append(fields[1].strip())
        info.append(fields[2].strip())

        return country, info

userCountry = input("Please enter a country (\"q to quit\"): ")

life = countryFinder("life.txt",info)
gini = countryFinder("gini.txt",info)



while userCountry != "q":
    if userCountry in life:
        print ("  Life Expectancy is ",life[info]," years at birth")
    else:
        print ("  No Life Expectancy Data")

    if userCountry in gini:
        print ("  Gini Value is ",gini[info])
    else:
        print ("  No Gini Data")

    userCountry = input("Please enter a country (\"q to quit\"): ")

软件:spyder与python 3.6

您已经编写了一个好代码,只是在这里和那里遗漏了一些行。我已经标记了你遗漏的行#


你的意思是代码不显示任何输出吗?另外,1)指出您使用的是哪一版本的python 2)此脚本编译还是收到错误消息?您是否检查了变量中的值以及代码中的不同点,以验证值是否符合预期?您可以设置一些测试断言案例。例如,函数中的country是否应该是country=fields[1]?@QHarr它显示输出,但仅显示其他输出,其中表示没有预期寿命数据或没有基尼数据,并且我将spyder与python 3.6一起使用。这似乎不起作用,它会出现“TypeError:Unhable type:‘list’”请提供life.txt和gini.txt文件,我看看你怎么能链接一个文件?@Rad_Dad:我已经更新了解决方案。让我知道它现在是否有效。@Rad_爸爸,不客气!:)请别忘了把答案标为答案
country = []
info = []
dic = {} #
def countryFinder(fileName,info):

    infile = open(fileName, "r")
    line = infile.readline()

    infile = open(fileName, "r").readlines() #

    for line in infile:
        line.strip()
        fields = line.split(":")
        fields = fields[1:3] #
        country = fields[0]
        country = country.strip() #
        info = fields[1]
        info = float(info.strip("\n")) #
        dic[country] = info #
    return dic.copy() #

country = input("Please enter a country (\"q to quit\"): ")
life = countryFinder("life.txt",info)
gini = countryFinder("gini.txt",info)

while country != "q":
    info = life #
    if country in info:
        info = country #
        print ("  Life Expectancy is ",life[info]," years at birth")
    else:
        print ("  No Life Expectancy Data")

    info = gini #
    if country in info:
        info = country #
        print ("  Gini Value is ",gini[info])
    else:
        print ("  No Gini Data")

    country = input("Please enter a country (\"q to quit\"): ")