Python:解析包含字符串,整数和逗号混合的文本输入文件

时间:2014-09-13 15:42:07

标签: python

我是python的新手,虽然我知道许多其他计算机语言。问题是从包含12行格式的文本文件中读取数据:

Jan(7,14,13,9)

从1月到12月每行一个月(每个有4个整数),以便可以对数据中的整数执行计算。

输入数据中的括号让我神秘,是否有一种从数据文件中提取整数的有效方法?我最终可以自己解决这个问题,但我正在努力帮助其他人并且有一个时间因素。提前谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用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)

答案 1 :(得分:0)

希望这会有所帮助:

>>> 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]
>>> 

答案 2 :(得分:0)

假设线条有图案,正如你所说。

line = 'Jan(7, 14, 13, 9)'

parsed_line = eval(line[3::])

sum_all = sum(parsed_line)
>>> 43 

它返回一个元组。