在Python中获取不带扩展名的目录下的文件名

4
我正在尝试获取目录中的文件名,但不想获取扩展名。根据我的现有代码 -
import os

path = '/Users/vivek/Desktop/buffer/xmlTest/' 
files = os.listdir(path) 
print (files)

我最终得到的输出如下所示:
['img_8111.jpg', 'img_8120.jpg', 'img_8127.jpg', 'img_8128.jpg', 'img_8129.jpg', 'img_8130.jpg']

然而,我希望输出看起来更像这样:
['img_8111', 'img_8120', 'img_8127', 'img_8128', 'img_8129', 'img_8130']

我该如何实现这个?

通过切片它们。 - Ignacio Vazquez-Abrams
2个回答

10
你可以使用`os`的splitext函数。
import os

path = '/Users/vivek/Desktop/buffer/xmlTest/' 
files = [os.path.splitext(filename)[0] for filename in os.listdir(path)]
print (files)

提醒一下:对于这个问题,basename 无法解决。因为 basename 不会移除文件扩展名。


1
这里有两个选项。
import os
print(os.path.splitext("path_to_file")[0])

或者
from os.path import basename
print(basename("/a/b/c.txt"))

5
basename("/a/b/c.txt") 返回带有扩展名的 c.txt。 - Gqqnbig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接