使用python中外部文件中的select元素编译列表

时间:2017-11-01 02:35:54

标签: python list

好的,所以我有2个外部文件(GirlNames.txt和BoyNames.txt)。每个文件都是条目编号和名称的列表。

示例:

1.  Michael
2.  Ken
3.  Rebecca

两个文件之间总共约300个名称。我想获取文件,处理它们,以便在流程结束时我只有一个名单,如下所示:

names = ['Michael','Ken','Rebecca']

我可以看到,为了做到这一点,我需要打开每个文件,读取每一行,然后将该行传递给列表。使用.split(。)会给我一系列列表,这些列表的格式为[0],条目号为[1]。好的,那么我可以删除第一个索引值,并将值添加到最终列表中。

所以这就是我到目前为止所提出的(暂时只处理一个文件):

file_xy = open("BoyNames.txt", "r")
for aline in file_xy:
    value = aline.split('.')
    entry = value.pop(0)
    file_xy.append(entry)
print(file_xy)

现在快速澄清,因为我不完全确定pop()是正确的方法。我发现的解释有些矛盾。 pop()是否从索引中删除了值,但是将索引留空了,还是删除了索引?我发现了解释。如果它没有删除索引,有什么方法呢?我尝试了我能想到的del的每个变体,每个人都抛出了无效的syntex错误。

此时我可以收到的具体错误是:

Traceback (most recent call last): File "Names-7.py", line 20, in <module>
file_xy.append(entry)
AttributeError: '_io.TextIOWrapper' object has no attribute 'append'

我错误地输入了条目吗?如果是这样,我该如何通过呢?

1 个答案:

答案 0 :(得分:1)

您正在将out_list = [] for aline in file_xy: value = aline.split('.') entry = value[0] #no reason to use pop here since value isn't used afterwards out_list.append(entry) print(out_list) 视为一个列表,但它并非如此。相反,你应该声明一个新的列表并附加到它:

{{1}}