带下划线_ os.path的单独文件名

时间:2019-01-18 08:00:40

标签: python os.path

在我的路径/volume1/xx/中有几个文件,每个文件的字符分别为A_test1.pdfB_test2.pdf,...我想分隔test1部分而不包含路径和{{1} }。

我是新手,所以我首先尝试使用全名 但我只有“ * .pdf”作为文本。 路径oder占位符*有什么问题?

.pdf

编辑

我从orign ReT_march获得了2019-01-18_RG-Telekom []-我想要2019-01-18_RG-Telekom_march(带下划线的文本)xx是一个文件夹 这是整个代码:

splitname = os.path.basename('/volume1/xx/*.pdf')

1 个答案:

答案 0 :(得分:0)

使用globos.path不知道如何处理遮罩,但是glob.glob可以工作:

splitnames = [os.path.basename(fpath) for fpath in glob.glob("./**/*.txt")]
splitnames 
Out:
['A_test1.pdf', 'B_test2.pdf']

glob的输出:

glob.glob("./**/*.txt")
Out:
['./some_folder/A_test1.pdf', './another_folder/B_test2.pdf']

os.path.basename应用于此列表并提取基名,如上所示。

修改
如果路径xx中的volume1/xx/只是一个文件夹名称,而不是掩码,则应使用以下表达式:

splitnames = [os.path.basename(fpath) for fpath in glob.glob("./xx/*.txt")]

因为./**/是一个掩盖文件夹名称的表达式,所以不需要这种情况。