按字符拆分文件名

时间:2013-05-29 21:13:45

标签: python

我想使用文件名中的特定字符拆分文件名。例如:

FileName = MyFile_1.1_A.txt
(File, ext) = os.path.splitext(FileName)
print File

这将输出:

MyFile_1.1_A

但是,我希望得到一个输出:

MyFile_1.1

我该怎么做?

4 个答案:

答案 0 :(得分:5)

如果文件格式是标准格式,则可以使用rsplit

print FileName.rsplit('_', 1)[0]

答案 1 :(得分:5)

另一种变化

FileName.rpartition('_')[0]

答案 2 :(得分:1)

>>> 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', '']

答案 3 :(得分: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'