我最近开始使用Python 2.7并且我得到了一个赋值,其中我得到一个包含用空格分隔的数据的文本文件。我需要将每一行拆分为只包含一种数据类型的字符串。这是一个例子:
Bruce Wayne 10012-34321 2016.02.20. 231231
John Doe 10201-11021 2016.01.10. 2310456
Chris Taylor 10001-31021 2015.12.30. 524432
James Michael Kent 10210-41011 2016.02.03. 3235332
我想通过姓名,身份证明,日期,余额来区分它们,但我知道的唯一的事情是分裂,我不能真正使用它,因为最后给定的名称有三个部分而不是两个部分。如何基于字符分割一条线?在这种情况下可能是解决方案?
感谢任何帮助。
答案 0 :(得分:5)
您希望使用str.rsplit()
并提供最多分割数,例如:
>>> s = 'James Michael Kent 10210-41011 2016.02.03. 3235332'
>>> s.rsplit(' ', 3)
['James Michael Kent', '10210-41011', '2016.02.03.', '3235332']
>>> s = 'Chris Taylor 10001-31021 2015.12.30. 524432'
>>> s.rsplit(' ', 3)
['Chris Taylor', '10001-31021', '2015.12.30.', '524432']
答案 1 :(得分:-1)
您需要查找从上一个分割创建的列表:
获取详细信息
ln = 'James Michael Kent 10210-41011 2016.02.03. 3235332'
ln.split()[-3:]
['10210-41011', '2016.02.03.', '3235332']
ln = 'Bruce Wayne 10012-34321 2016.02.20. 231231'
ln.split()[-3:]
['10012-34321', '2016.02.20.', '231231']
获取姓名:
ln.split()[:-3]
['Bruce', 'Wayne']
ln = 'James Michael Kent 10210-41011 2016.02.03. 3235332'
ln.split()[:-3]
['James', 'Michael', 'Kent']