在我的路径/volume1/xx/
中有几个文件,每个文件的字符分别为A_test1.pdf
,B_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')
答案 0 :(得分:0)
使用glob,os.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")]
因为./**/
是一个掩盖文件夹名称的表达式,所以不需要这种情况。