我有在以下格式行的文件:查找空間之間的串號,並解析它
d 55 r:100:10000
我想找到55
並解析它爲int。我怎樣才能做到這一點 ?我想使它變得間隔證明。這意味着中間可能會有更多或更少的空間,但肯定會在d
和r
之間。
我有在以下格式行的文件:查找空間之間的串號,並解析它
d 55 r:100:10000
我想找到55
並解析它爲int。我怎樣才能做到這一點 ?我想使它變得間隔證明。這意味着中間可能會有更多或更少的空間,但肯定會在d
和r
之間。
的str.split()
方法默認分割上任意寬度空格:
>>> 'd 55 r:100:10000'.split()
['d', '55', 'r:100:10000']
挑選出只是中間的數字,然後成爲一個簡單的選擇:
>>> int('d 55 r:100:10000'.split()[1])
55
引用的文檔:
如果sep未指定或是
None
,應用了不同的分割算法:將連續空白的運行視爲單個分隔符,並且如果該字符串具有前導空格或尾隨空格,則結果將在開始或結束處不包含空字符串。因此,使用None
分隔符將空字符串或僅由空白組成的字符串拆分返回[]
。
這很簡單:如果你確實需要檢查它是否是d
和r
之間
number = int(line.split()[1])
,然後用
import re
number = int(re.search(r"d\s+(\d+)\s+r", line).group(1))
>>> 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
哇,夥計,你快速發展!非常感謝。 – Patryk 2013-04-09 11:09:58