有没有办法使用 Python 连接 .txt 文件中的分隔字符串值?
Is there a way to concatenate separated string values in a .txt file using Python?
我在 python 中有一个列表,其中包含软件包和版本号,但它们没有像 'package-0.14' 那样列出 - 也就是说,版本号不是文件名的一部分.格式如下:
packagename = 0.14
我有另一个 .txt 文件,它有相同的信息,但更多,这是个问题。它的格式如下:
Package: packagename
Package size: 100MB
Version: 0.14
所以它们不仅是行分隔的,而且在两个值之间有更多信息,我需要以某种方式忽略这些信息。我需要包名称和版本号,因为它们相互关联,因此我可以检查第一个列表中的值是否与 .txt 文件的值匹配。
在 python 中有没有一种方法可以说“获取‘Package:’的值”,然后逐行获取“Version:”的值,这样我就知道它的版本同一个包裹?
使用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')]
将你的文件解析成字典,从字典中提取信息:
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']))
我在 python 中有一个列表,其中包含软件包和版本号,但它们没有像 'package-0.14' 那样列出 - 也就是说,版本号不是文件名的一部分.格式如下:
packagename = 0.14
我有另一个 .txt 文件,它有相同的信息,但更多,这是个问题。它的格式如下:
Package: packagename
Package size: 100MB
Version: 0.14
所以它们不仅是行分隔的,而且在两个值之间有更多信息,我需要以某种方式忽略这些信息。我需要包名称和版本号,因为它们相互关联,因此我可以检查第一个列表中的值是否与 .txt 文件的值匹配。
在 python 中有没有一种方法可以说“获取‘Package:’的值”,然后逐行获取“Version:”的值,这样我就知道它的版本同一个包裹?
使用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')]
将你的文件解析成字典,从字典中提取信息:
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']))