pywin32打开对话框选择文件

5 篇文章 0 订阅
3 篇文章 0 订阅

pywin32打开对话框选择文件

( 复制请前往4. )

1. 模块
必要库: pywin32 模块
pip install pywin32
2. 演示效果

演示1
运行文件:
演示2
演示3
演示4
无奖竞猜( 文件里的是什么(❁´◡`❁) )

3. 注释代码
import os
import win32con
import win32ui
# win32con与win32ui等模块从 "pip install pywin32" 下载

default_name = ''
# 默认输入文件名 (一般 "保存/另存为" 为文件名加后缀, "打开" 为空字符串)

file_type = '所有文件(*.*)|*.*|图片文件(*.png;*.jpg)|*.png;*.jpg|'
# 可选的文件类型 ("|"与下一个"|" 中间的 "*."+文件后缀 才是格式判别标准, 第一个"|"之前的所有字符串 (如 "(*.*)") 均为显示内容,无实际作用))

mode = False
# "False"为 "保存/另存为", "True"为 "打开"

API_flag = win32con.OFN_OVERWRITEPROMPT | win32con.OFN_FILEMUSTEXIST
dlg = win32ui.CreateFileDialog(mode, None, default_name, API_flag, file_type)

dlg.SetOFNTitle("选择您的文件")
# "SetOFNTitle()": 设置标题

dlg.SetOFNInitialDir(os.path.abspath('desktop'))
# "SetOFNInitialDir()": 设置默认路径(需绝对路径) ("os.path.abspath()" 获取绝对路径)

dlg.DoModal()
# "DoModal()": 开始运行对话框, 阻滞程序

filename = dlg.GetPathName()
# "GetPathName()": 获取文件路径

fileExt = dlg.GetFileExt()
# "GetFileExt()": 获取文件后缀名


if os.path.exists(filename):
    pass
elif not mode:  # 当模式为 "保存/另存为" 时有可能需要新建文件, 所以文件有可能不存在
    if os.path.split(filename)[0] == '':
        print('对话框被关闭')
    else:
        pass
else:
    print('对话框被关闭或文件路径错误')
# 当对话框被关掉时会返回 输入框里的字符串.

4. 模块代码 (复制即可用)
import os
import win32con
import win32ui


def browse(mode: bool | int,
           default_name: str = "",
           title: str = "选择您的文件",
           file_type: str = "所有文件(*.*)|*.*|",
           path: str = "desktop"):
    API_flag = win32con.OFN_OVERWRITEPROMPT | win32con.OFN_FILEMUSTEXIST
    dlg = win32ui.CreateFileDialog(mode, None, default_name, API_flag, file_type)
    dlg.SetOFNTitle(title)
    dlg.SetOFNInitialDir(os.path.abspath(path))
    dlg.DoModal()
    filename = dlg.GetPathName()
    fileExt = dlg.GetFileExt()
    if os.path.exists(filename):
        if_pass = True
    elif not mode:
        if os.path.split(filename)[0] == '':
            if_pass = False
        else:
            if_pass = True
    else:
        if_pass = False
    return [if_pass, filename, fileExt]

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值