如何提取不含扩展名的文件名或直接获取无扩展名的文件路径?
提取Tkinter文件选择路径的无扩展名文件名/完整路径
可以直接用Python标准库中的路径处理工具来实现,无需额外依赖,以下是两种常用方法:
方法一:使用os.path模块(兼容所有Python版本)
import os from tkinter import filedialog as fd pathName = fd.askopenfilename(filetypes=[('Python file','*.py')]) if pathName: # 处理用户取消选择的情况 # 获取不带扩展名的完整路径 full_path_no_ext = os.path.splitext(pathName)[0] # 获取不带扩展名的文件名 filename_no_ext = os.path.split(full_path_no_ext)[1] print(full_path_no_ext) # 输出示例:C:\Users\User\Desktop\my_program print(filename_no_ext) # 输出示例:my_program
os.path.splitext(pathName)会将路径拆分为**(无扩展名的路径部分, 文件扩展名)**,取第一个元素就得到去掉扩展名的完整路径;os.path.split(full_path_no_ext)会将路径拆分为**(目录路径, 文件名)**,取第二个元素得到不带扩展名的文件名。
方法二:使用pathlib模块(Python 3.4+推荐,更简洁)
from pathlib import Path from tkinter import filedialog as fd pathName = fd.askopenfilename(filetypes=[('Python file','*.py')]) if pathName: path_obj = Path(pathName) # 获取不带扩展名的完整路径 full_path_no_ext = path_obj.with_suffix('') # 获取不带扩展名的文件名 filename_no_ext = path_obj.stem print(full_path_no_ext) # 输出示例:C:\Users\User\Desktop\my_program print(filename_no_ext) # 输出示例:my_program
path_obj.with_suffix('')直接返回去掉扩展名的完整路径对象,可直接转为字符串使用;path_obj.stem属性直接返回不带扩展名的文件名,无需额外拆分。
内容的提问来源于stack exchange,提问作者i33SoDA
相关产品推荐
相关产品推荐

