How do I find one number in a string in Python?
我有一个文件叫做file-1.txt或file-340.txt。我想从文件名中获取号码。我发现我可以用
1 | numbers = re.findall(r'\d+', '%s' %(filename)) |
若要获取包含数字的列表,并使用数字[0]将数字本身作为字符串获取…但是,如果我知道这只是一个数字,它似乎是迂回和不必要的清单来获得它。还有别的办法吗?
编辑:谢谢!我想现在我还有一个问题。我不是得到一个字符串,而是如何得到整数?
用
1 | number = re.search(r'\d+', filename).group() |
或者:
1 | number = filter(str.isdigit, filename) |
号
添加到F.J的注释中,如果需要int,可以使用:
1 | numbers = int(re.search(r'\d+', filename).group()) |
另一种娱乐方式:
1 2 3 4 | In [1]: fn = 'file-340.txt' In [2]: ''.join(x for x in fn if x.isdigit()) Out[2]: '340' |
。
如果你希望你的计划有效
使用此:
1 | num = filename.split("-")[1][:-4] |
这只对您展示的示例有效
在回答您的新问题时,您可以将
1 2 | >>>int('123') 123 |
。