我想用文件名中的特定字符拆分文件名。例如:按文件名拆分文件名
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
我怎樣才能做到這一點?
如果文件格式是標準的,可以使用rsplit
print FileName.rsplit('_', 1)[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'
如果文件名是「MyFile_1.1_A.2_B.txt」,該怎麼辦?你會期望'MyFile_1.1_A.2','MyFile_1.1'還是別的嗎? – redbmk