在Python中获取没有扩展名的文件名

时间:2010-12-14 22:26:58

标签: python regex

如果我有一个像这样的文件名:

1.1.1.1.1.jpg

1.1.jpg

1.jpg

如果没有扩展程序,我怎么才能获得文件名?正则表达式是否合适?

5 个答案:

答案 0 :(得分:185)

在大多数情况下,你不应该使用正则表达式。

os.path.splitext(filename)[0]

通过保留整个名称,这也可以正确处理.bashrc这样的文件名。

答案 1 :(得分:23)

>>> import os
>>> os.path.splitext("1.1.1.1.1.jpg")
('1.1.1.1.1', '.jpg')

答案 2 :(得分:10)

如果我必须使用正则表达式执行此操作,我会这样做:

s = re.sub(r'\.jpg$', '', s)

答案 3 :(得分:6)

不需要正则表达式。 os.path.splitext是你的朋友:

os.path.splitext('1.1.1.jpg')
>>> ('1.1.1', '.jpg')

答案 4 :(得分:2)

您可以使用stem方法来获取文件名。

这里是一个例子:

from pathlib import Path

p = Path(r"\\some_directory\subdirectory\my_file.txt")
print(p.stem)
# my_file