2016-12-06 49 views
0

所以我有大量的數據文件,其中有一個類似的名字:分割.txt文件包括擴展名爲.txt

lvh_GTV_TwoField-3-401-86.txt

文件之間的變化是數字86GTV

我試圖用這個代碼文件進行區分:

f.split('-')[3] 

這一點,如果我沒有記錯的話,應該將文件在-拆分,然後第三個,也就是86。在我的情況下,我真的想使用int(f.split('-')[3]),因爲我需要引用它與另一個數字,但是,在第3分裂時,輸出實際上是86.txt左右,因此我不能將它作爲整數。

所以我的問題是:如何分割文件,所以我只有值86,而不是.txt擴展與它一起?

在此先感謝。

回答

1

鑑於這是非常控制,你可以splice生成字符串,所以像:

f.split('-')[3][:-4] # '86', take all chars except the last 4 (.txt) 
2

您也可以使用os.path.splitext函數刪除擴展:

import os 

os.path.splitext(f)[0].split('-')[3] 

或者,更詳細地說,

base, ext = os.path.splitext(f) 
base.split('-')[3] 
1

使用PyPI package parse

from parse import parse 

parse("lvh_{}_TwoField-3-401-{:d}.txt", "lvh_GTV_TwoField-3-401-86.txt")[1] 
# => 86 (as an int) 
0

使用Python's build-in RegExp library

import re 

m = re.match(
     "lvh_.+_TwoField-3-401-(?P<the_number>\d+)\.txt", 
     "lvh_GTV_TwoField-3-401-86.txt" 
) 
the_number = int(m.group('the_number')) 
相關問題