Python:解析包含字符串,整数和逗号混合的文本输入文件
问题描述:
我是python的新手,虽然我知道很多其他计算机语言。问题是在数据从与在格式12行的文本文件中读取:Python:解析包含字符串,整数和逗号混合的文本输入文件
月(7,14,13,9)每行
1个月从1至12月(每个具有4点的整数),所以可以对数据中的整数执行计算。
输入数据中的圆括号让我神秘,是否有从数据文件中提取整数的有效方法?我最终可以自己解决这个问题,但我正在努力帮助别人,而且还有时间因素。提前致谢。
答
希望这有助于:
>>> s = 'Jan(7, 14, 13, 9)'
>>> idx = s.index('(') #find the index of (
>>> idx
3
>>> s[idx+1:-1] #the content of()
'7, 14, 13, 9'
>>> list(int(x) for x in s[idx+1:-1].split(',')) #now a split and a list comprehension
[7, 14, 13, 9]
>>>
答
您可以使用abstract syntax tree获得价值
>>> import ast
>>> line = 'Jan(7, 14, 13, 9)'
>>> j = line.index('(')
>>> line[:j] # month
'Jan'
>>> ast.literal_eval(line[j:]) # a tuple of values
(7, 14, 13, 9)
答
假设线为图案,如你所说的元组。
line = 'Jan(7, 14, 13, 9)'
parsed_line = eval(line[3::])
sum_all = sum(parsed_line)
>>> 43
它返回一个元组。