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

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

1.1.1.1.1.jpg 1.1.jpg 1.jpg 

我怎么才能得到只有文件名,没有扩展名? 正则expression式是否合适?

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

 os.path.splitext(filename)[0] 

这也将正确处理像.bashrc一样的文件名保持全名。

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

如果我必须用正则expression式来做这件事,我会这样做:

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

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

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