我有一条这样的道路。
/schemas/123/templates/Template1/a/b
我想剥离所有内容并仅将数字(即123)存储到变量中。有人可以帮忙吗?我想要存储的数字每次都保留在路径中的相同位置。我的意思是数字总是在/ schemas /" number"
之后非常感谢
答案 0 :(得分:1)
pathlib
个对象旨在方便地访问路径的组件parts:
>>> from pathlib import Path
>>> path = Path('/schemas/123/templates/Template1/a/b')
>>> path.parts
('/', 'schemas', '123', 'templates', 'Template1', 'a', 'b')
>>> [int(part) for part in path.parts if part.isdigit()]
[123]
答案 1 :(得分:0)
编辑在评论中声明它可以是数字和字符
方法1 使用拆分
#!/usr/bin/python
testLine = "/schemas/123abc/templates/Template1/a/b"
print testLine.split("/")[2]
方法2 使用正则表达式
选择第二个和第三个之间的任何内容(如果存在)斜杠
#!/usr/bin/python
import re
testLine = "/schemas/123abc/templates/Template1/a/b"
pattern = "^/schemas/(.[^/]+).*"
matchObj = re.match(pattern, testLine)
if matchObj:
num = matchObj.group(1)
print int(num)
else:
print "not found"
模式如下: