简体   繁体   English

从输入文件创建名称列表

[英]Creating a List of Names from an Input File

I'm going crazy trying to figure out how to get rid of the error 'str has no attribute append'. 我疯狂地尝试找出如何摆脱错误“ str has no attribute append”。 I need to add the people's names to name_list from the input file. 我需要将人的名字从输入文件添加到name_list。

A typical line from the input file would read: 输入文件中的典型行将显示为:

Tameka harris 3/4/17 塔梅卡·哈里斯3/4/17

Here is the code I have so far: 这是我到目前为止的代码:

def process_input(file1, any_dict, any_set):

    #open input file
    customer_input_file = open(file1, 'r')


    #initialize a list to store info by line
    line_list = []

    #Create a name counter
    index = 0

    #read file line by line
    for line in customer_input_file:
        #split the line
        line_list = line.split()
        #slice the list to make a list with only names and no dates
        name_list = line_list[-1]
        #create a variable for first name from list
        fname = name_list[0].title()
        #create a last name variable from list
        lname = name_list[1].title()
        #add the two name variables together as a new list
        input_name = [fname + ' ' + lname]


        #add names to name list
        name_list.append(input_name)

        #add names to name list
        any_set.add(name_list[index])

        #count the times a name repeats in the name list
        any_dict[input_name] = name_list.count(input_name)


        #add 1 to index
        index += 1


    #Close input file
    customer_input_file.close
# slice the list to make a list with only names and no dates
name_list = line_list[-1]

The above returns the last item in the list which is a string and that's why name_list.append(input_name) throws the error. 上面的代码返回列表中的最后一个项目,它是一个字符串,这就是为什么name_list.append(input_name)引发错误的原因。

What you need is to exclude the last item: 您需要排除最后一项:

name_list = line_list[:-1]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM