You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取不含扩展名的文件名或直接获取无扩展名的文件路径?

提取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 20:48:12