簡體   English   中英

從python中的文件名字符串中提取數字

[英]Extracting numbers from a filename string in python

我在目錄中有許多html文件。 我正在嘗試將文件名存儲在一個列表中,以便以后可以將其與另一個列表進行比較。

例如: Prod224_0055_00007464_20170930.html是文件名之一。 從文件名中,我要提取“ 00007464”並將此值存儲在列表中,並對目錄中的所有其他文件重復相同的操作。 我該怎么做呢? 我是Python的新手,任何幫助將不勝感激!

如果您需要更多信息來回答問題,請告訴我。

您可以嘗試這樣做(假設您位於包含文件的文件夾中:

import os

num_list = []

r, d, files = os.walk( '.' ).next()
for f in files :
    parts = f.split('_')   # now `parts` contains ['Prod224', '0055', '00007464', '20170930.html']
    print parts[2]         # this outputs '00007464'
    num_list.append( parts[2] )

假設您的文件具有特定模式,則可以使用正則表達式:

>>> import re
>>> s = 'Prod224_0055_00007464_20170930.html'
>>> desired_number = re.findall("\d+", s)[2]
>>> desired_number
'00007464'

使用正則表達式不僅可以幫助您獲取所需的特定編號,還可以幫助您獲取文件名中的其他編號。

如果文件名遵循“ [某些文本] [number] _ [number] _ [desired_number] _ [a date] .html”的格式,則此方法有效 得到數字后,我認為使用append方法將該數字添加到所需的任何列表中將非常簡單。

在下划線上分割文件名,然后選擇第三個元素(索引2)。

>>> 'Prod224_0055_00007464_20170930.html'.split('_')[2]
'00007464'

在這樣的情況下:

nums = [f.split('_')[2] for f in os.listdir(dir) if f.endswith('.html')]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM