ファイル名に特定の文字を使用してファイル名を分割したいと考えています。例えば:
FileName = MyFile_1.1_A.txt
(File, ext) = os.path.splitext(FileName)
print File
これにより、次の出力が得られます。
MyFile_1.1_A
ただし、次の出力を取得したいと思います。
MyFile_1.1
これどうやってするの?
ファイル名に特定の文字を使用してファイル名を分割したいと考えています。例えば:
FileName = MyFile_1.1_A.txt
(File, ext) = os.path.splitext(FileName)
print File
これにより、次の出力が得られます。
MyFile_1.1_A
ただし、次の出力を取得したいと思います。
MyFile_1.1
これどうやってするの?
別のバリエーション
FileName.rpartition('_')[0]
>>> fn='MyFile_1.1_A.txt'
>>> re.split(r'_[^_]*$',fn)
['MyFile_1.1', '']
>>> fn='file_name_with_many_under_scores_1.1_.txt'
>>> re.split(r'_[^_]*$',fn)
['file_name_with_many_under_scores_1.1', '']
どうですか:
FileName = 'MyFile_1.1_A.txt'
File = '_'.join(FileName.rsplit('_')[:-1])
print File
たとえば、これは別のケースも処理します。
In [1]: FileName = 'MyFile_ohyeah_1.1_A.txt'
In [2]: File = '_'.join(FileName.rsplit('_')[:-1])
In [3]: File
Out[3]: 'MyFile_ohyeah_1.1'