Xon*_*hiz 5 python file python-2.7 python-3.x
名为" export" 的文件夹中有一个mkv文件.我想要做的是创建一个python脚本,从该导出文件夹中提取文件名.假设文件夹位于" C:\Users\UserName\Desktop\New_folder\export".
我如何获取名称?
我试着用这个os.path.basename和os.path.splitext..好..没有工作,喜欢我的预期.
os.path在路径名上实现一些有用的功能.但它无法访问路径的内容.为此,您可以使用os.listdir.
以下命令将为您提供给定路径的内容列表:
os.listdir("C:\Users\UserName\Desktop\New_folder\export")
Run Code Online (Sandbox Code Playgroud)
现在,如果您只想要.mkv可以使用的文件fnmatch(此模块提供对Unix shell样式通配符的支持)模块来获取您期望的文件名:
import fnmatch
import os
print([f for f in os.listdir("C:\Users\UserName\Desktop\New_folder\export") if fnmatch.fnmatch(f, '*.mkv')])
Run Code Online (Sandbox Code Playgroud)
另外,正如@Padraic Cunningham提到的处理文件名更加pythonic的方式,你可以使用glob模块:
map(path.basename,glob.iglob(pth+"*.mkv"))
Run Code Online (Sandbox Code Playgroud)
您可以使用glob:
from glob import glob
pth ="C:/Users/UserName/Desktop/New_folder/export/"
print(glob(pth+"*.mkv"))
Run Code Online (Sandbox Code Playgroud)
path+"*.mkv"将匹配所有以.mkv.
要获得基本名称,您可以使用 map 或带有 iglob 的列表组合:
from glob import iglob
print(list(map(path.basename,iglob(pth+"*.mkv"))))
print([path.basename(f) for f in iglob(pth+"*.mkv")])
Run Code Online (Sandbox Code Playgroud)
iglob 返回一个迭代器,因此您不会无缘无故地构建列表。