2012-12-23 36 views

回答

18

你可以使用正則表達式:

regex = re.compile(r'\d+') 

然後得到匹配的字符串:

regex.findall(filename) 

這將返回包含數字的字符串列表。如果你真的想整數,你可以使用int

[int(x) for x in regex.findall(filename)] 

如果只有1中每個文件名數量,你可以使用regex.search(filename).group(0)(如果你一定認爲它會產生一個匹配)。如果找不到匹配項,上面的行會產生一個AttributeError,說NoneType沒有屬性group

+0

這正是我所需要的 - 非常感謝。 – Borealis

+0

@Aaron - 沒問題。我很樂意提供幫助。 – mgilson

3

因此,您還沒有描述這些文件的位置以及如何獲取這些文件,但我認爲您將使用os模塊獲取文件名。

至於獲得數出名字的,你最好關閉使用正則表達式與re,像這樣:

import re 
def get_numbers_from_filename(filename): 
    return re.search(r'\d+', filename).group(0) 

然後,包括在for循環中,你會在每個文件名上運行該功能:

for filename in os.listdir(myfiledirectory): 
    print get_numbers_from_filename(filename) 

或沿着這些線的東西。

2

如果只有一個數字:

filter(lambda x: x.isdigit(), filename) 
相關問題