我的文件包含用制表符(“\t”)分隔的值。我正在尝试创建一个列表,并将文件的所有值存储在列表中。但是我遇到了一些问题。这是我的代码。

line = "abc def ghi"
values = line.split("\t")

只要每个值之间只有一个制表符,它就可以正常工作。但是,如果标签不止一个,则它将标签也复制到值。就我而言,额外的标签通常位于文件中的最后一个值之后。

最佳答案

您可以在此处使用regex:

>>> import re
>>> strs = "foo\tbar\t\tspam"
>>> re.split(r'\t+', strs)
['foo', 'bar', 'spam']

更新:

您可以使用str.rstrip摆脱尾随的'\t',然后应用正则表达式。
>>> yas = "yas\t\tbs\tcda\t\t"
>>> re.split(r'\t+', yas.rstrip('\t'))
['yas', 'bs', 'cda']

10-01 19:11