对于手动选择的文件的绝对路径操作得到文件的文件名、无后缀文件名和文件路径
1、读取文件的绝对路径
当需要打开文件对话框手动选择文件时,我们需要选择导入tkinter.filedialog函数,tkinter是python内置库不需要安装,获取文件制定路径使用filedialog.askopenfilename,返回类型为字符串
可选参数
参数 | 用法 |
---|---|
title | 指定文件对话框的标题栏文本 |
parent | 打开文件对话框的窗口,如果不指定该选项,那么对话框默认显示在根窗口上;如果为单独语句则自建一个窗口;如果想要将对话框显示在子窗口 win上,那么可以设置 parent=win即可 |
initialdir | 指定打开文件路径的default值;如果不指定该项则为当前路径 |
filetypes | 指定筛选文件类型的下拉菜单选项; 该选项的值是由 2 元祖构成的列表; 每个 2 元祖由(类型名,后缀)构成,例如:filetypes=[(“PNG”, “.png”), (“JPG”, “.jpg”), (“GIF”, “.gif”),(‘Excel’,“.xls .xlsx”)] |
defaultextension | 指定文件的后缀; 例如:defaultextension=".jpg"那么当用户输入一个文件名"xxx"的时候,文件名会自动添加后缀为 “xxx.jpg”; 注意:如果用户输入文件名包含后缀,那么该选项不生效 |
from tkinter import filedialog
import tkinter as tk
root = tk.Tk()
root.withdraw()
absolute_path = filedialog.askopenfilename(title='请选择一个文件', parent=root, initialdir=r'C:\Users',
filetypes=[("PNG", ".png"), ("JPG", ".jpg")])
得到绝对路径:绝对路径:C:/Users/24533/Pictures/图片/图片1.jpg
2、使用os.path.basename获取带后缀的文件名
import os
file_name = os.path.basename(absolute_path)
print("文件名:" + file_name)
# 文件名:图片1.jpg
3、去后缀
1、路径为字符串,对路径进行字符串切片
filename1 = file_name.split(".")[0]
print("无后缀文件名:" + filename1)
# 无后缀文件名:图片1
2、使用 pathlib,该文件不用真实存在,返回值为str
from pathlib import Path
filename2 = Path(absolute_path).stem
print("无后缀文件名:" + filename2)
# 无后缀文件名:图片1
3、使用os.path.dirname获取路径
path = os.path.dirname(absolute_path) + '/'
print("路径:" + path)
# 路径:C:/Users/24533/Pictures/图片/