2016-12-06 150 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')) 
相关问题