有没有办法使用Python连接.txt文件中的分隔字符串值?

时间:2015-10-06 17:29:16

标签: python arrays string list concatenation

我在python中有一个包含软件包和版本号的列表,但它们没有像'package-0.14'那样列出 - 也就是说,版本号不是文件名的一部分。它的格式如下:

  

packagename = 0.14

我有另一个.txt文件,它有相同的信息和更多,这是一个问题。它的格式如下:

  

包:packagename

     

包装尺寸:100MB

     

版本:0.14

因此,不仅它们是行分隔的,它们在我需要以某种方式忽略的两个值之间有更多的信息。我需要包名称和版本号,因为它们彼此相关,所以我可以检查第一个列表中的值是否可以匹配.txt文件的值。

在python中有没有办法说“获取'Package:'的值,然后逐行获取”Version:“的值,所以我知道它是同一个包的版本?

2 个答案:

答案 0 :(得分:0)

使用re模块。

>>> import re
>>> s = '''

    Package: packagename

    Package size: 100MB

    Version: 0.14
'''
>>> re.findall(r'(?s)\bPackage:\s*(\S+).*?\bVersion:\s*(\S+)', s)
[('packagename', '0.14')]

答案 1 :(得分:0)

将您的文件解析为字典,从字典中提取信息:

with open(filename) as f:
   lines=f.readlines()

d=dict()
for line in lines:
  line=line.strip()
  if line:
     (k,v)=line.split(":", 1)
     d[k]=v

print("%s: %s" % (d['Package'], d['Version']))