示例:
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'
我错误地输入了条目吗?如果是这样,我该如何通过呢?
答案 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}}