我有一个文本文件,比如这个小例子:
小例子:
</Attributes>
ENDI,ERT,GFTR,29
ENDI,XCV,HGJ,36
TOC,FGNH,TRYCB,3742
TOC,MVCL,KJDSFH,38799
GOF,KLJG,XZCJV,31
GOF,LKBFV,JKSDHF,18
我想选择一些行并将第4列(这些行用逗号分隔)添加到python列表中。关键是所有的行都不是逗号分隔的,但是我感兴趣的行是逗号分隔的分开。这里是预期输出:
TOC = [3742, 38799]
GOF = [31, 18]
我用python编写了以下代码。但不返回预期输出。你知道怎么修吗?你知道吗
TOC = []
GOF = []
file = open('file.txt') as f:
for line in file:
if line.startswith("TOC"):
TOC.append(line[3])
if line.startswith("GOF"):
GOF.append(line[3])
这是我第一次张贴,所以我希望这有帮助。这会给你想要的结果。如果要将值存储为int,请替换目录附加(值)带目录附加(int(值))。你知道吗
您的解决方案无法正常工作的原因是,获取字符串(
line[3]
)的索引位置会产生单个字符。要从逗号分隔的行中获取整个单词,需要split它,并指定逗号作为分隔符。你知道吗Split返回一个或多个数组,因此现在当您获得索引值时,您将从数组中的该位置得到一个字符串,而不仅仅是一个字符。你知道吗
下面是一个替代实现,基于WebScrapingPancake的答案,使用列表字典。使用字典意味着你不需要知道这行的第一个单词是什么。你知道吗
输出:
缺点是必须过滤掉不需要的行,例如文件的第一行。但这是我留给你去解决的问题;)
使用CSV阅读器。它将有助于你在其他项目。你知道吗
输出为:
从您的问题中,我假设您希望列表中的what是int,而不是字符串,这就是为什么值被包装在int()s中的原因
相关问题 更多 >
编程相关推荐