我有一个文件,其中包含以下格式的行:
d 55 r:100:10000
我想找到它55
并将其解析为int。我怎样才能做到这一点 ?我想让它在证明之间可变空间。这意味着两者之间可能会有更多或更少的空间,但肯定会在两者d
之间r
。
这很容易:
number = int(line.split()[1])
如果您确实需要检查它是否在 and 之间d
,请r
使用
import re
number = int(re.search(r"d\s+(\d+)\s+r", line).group(1))
默认情况下,该str.split()
方法在任意宽度的空格上拆分:
>>> 'd 55 r:100:10000'.split()
['d', '55', 'r:100:10000']
只挑出中间的数字就变成了一个简单的选择:
>>> int('d 55 r:100:10000'.split()[1])
55
引用文档:
如果sep未指定或 is
None
,则应用不同的拆分算法:连续空格的运行被视为单个分隔符,如果字符串具有前导或尾随空格,则结果将在开头或结尾不包含空字符串。因此,使用分隔符拆分空字符串或仅包含空格的字符串会None
返回[]
.
>>> line = 'd 55 r:100:10000'
>>> int(line.split()[1]) # By default splits by any whitespace
55
或者更高效,您可以将其限制为两个拆分(第二个包含整数):
>>> int(line.split(None, 2)[1]) # None means split by any whitespace
55