2016-12-06 2 views
0

が含まれています分割は、だから私はこれに似た名前を持つデータファイルの多くを持っている拡張子.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] 
0

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')) 
関連する問題