我有一个输入文件&它包含:
TEST.JOB
TEST.LAST_LOGIN,10
TEST.DATA,12
TEST.QUEUE_PARAM,09
TEST.ENTITY_PROFILE
我期待返回如下面的元组列表:
[('TEST','JOB'),('TEST','LAST_LOGIN','10'),('TEST','DATA','12'), .....]
请告知如何实现这一目标。
答案 0 :(得分:1)
我刚刚编辑Yassine Faris'发布,但它被删除。由于缺乏代码,这实际上是正确的答案。
with open("input_file.txt") as f:
lines = f.readlines()
# It will going to split string from every dot and comma
result = [tuple(l.strip().replace(',', '.').split(".")) for l in lines]
# Result: [('TEST', 'JOB'), ('TEST', 'LAST_LOGIN', '10'), ('TEST', 'DATA', '12'), ('TEST', 'QUEUE_PARAM', '09'), ('TEST', 'ENTITY_PROFILE')]
答案 1 :(得分:0)
这是一种方式。
# extract date into list of lists prior to this logic
lst = ['TEST.JOB',
'TEST.LAST_LOGIN,10',
'TEST.DATA,12',
'TEST.QUEUE_PARAM,09',
'TEST.ENTITY_PROFILE']
# initialise list
res = []
# iterate and append
for item in lst:
cat, detail = item.split('.')
app = [cat] + detail.split(',')
res.append(app)
# convert list of lists to list of tuples
res = list(map(tuple, res))
结果:
[('TEST', 'JOB'),
('TEST', 'LAST_LOGIN', '10'),
('TEST', 'DATA', '12'),
('TEST', 'QUEUE_PARAM', '09'),
('TEST', 'ENTITY_PROFILE')]
答案 2 :(得分:0)
简单的单行:
lst = ['TEST.JOB',
'TEST.LAST_LOGIN,10',
'TEST.DATA,12',
'TEST.QUEUE_PARAM,09',
'TEST.ENTITY_PROFILE']
result = [tuple(line.replace('.',' ').replace(',',' ').split()) for line in lst]
print(result)
结果:
[('TEST', 'JOB'), ('TEST', 'LAST_LOGIN', '10'), ('TEST', 'DATA', '12'), ('TEST', 'QUEUE_PARAM', '09'), ('TEST', 'ENTITY_PROFILE')]
答案 3 :(得分:0)
Use regular expressions to split with multiple deliminator.
import re
with open('input_file.txt') as f:
data = [tuple(re.split("\.|\,", val.strip())) for val in f.readlines()]
#Output
[('TEST', 'JOB'), ('TEST', 'LAST_LOGIN', '10'), ('TEST', 'DATA', '12'), ('TEST', 'QUEUE_PARAM', '09'), ('TEST', 'ENTITY_PROFILE')]