将可变长度字符串分配给 python3.4 中的列表元素的最佳方法

best way to assign variable length strings to list elements in python3.4

我有一个数字长度可变的文本文件(“62554”可以是 'xxxx' 或 'xxx')

# cat dsset-domain.com.
domain.com.          IN DS 62554 8 1 84988C2B6D3C92F35E1457D3771D0270417622D2
domain.com.          IN DS 62554 8 2 EF940E2D5CFAD8B47A699ACCD68A77C43F120774CABCCA5A25443BE3 1D1BEABF

我需要分配给列表变量的第一行的最后 4 个字符串:

list[0] = 62554
list[1] = 8
list[2] = 1
list[3] = 84988C2B6D3C92F35E1457D3771D0270417622D2

但我确实没有可用的分隔符。

分割一行可变长度的字符串并将它们分配为列表元素的最佳方法是什么?

代码:

#!/usr/bin/python
import string
import requests

name = input("Enter the domain to provision DS keys for? ")
url = 'https://www.provider.net/ws/domain/'+name+'/ds'


with open('/usr/local/etc/namedb/dsset-'+name+'.', 'rt') as in_file:
        dstext = in_file.read()
print(dstext)

您可以只使用 split ant pickup 最后 3 个带有切片的项目:

>>> s="domain.com.          IN DS 62554 8 1 84988C2B6D3C92F35E1457D3771D0270417622D2"
>>> s.split()[-3:]
['8', '1', '84988C2B6D3C92F35E1457D3771D0270417622D2']

fileobject.readline 函数将只获取第一行。

with open('file') as f:
    l = []
    m = f.readline().split()
    l = m[-4:]
    print(l)

输出:

['62554', '8', '1', '84988C2B6D3C92F35E1457D3771D0270417622D2']