我正在尝试在tkinter中创建一个savefile对话框.我需要保存文件名以便以后使用.但是,我不希望filedialog接受选择已存在的文件名.

到目前为止我只有这个:

from tkinter import filedialog

my_file = filedialog.asksaveasfilename(defaultextension = ".myfile",

filetypes = [("MY SUPER FILE", ".myfile"),

("All files", ".*")])

一种可能性是获取文件名,检查它是否存在(使用os.path.isfile)并再次询问用户是否存在具有相同名称的文件的新名称.但是,tkinter filedialog会询问用户“文件是否已存在.是​​否要覆盖?”.因此,如果稍后我告诉用户我不接受文件名选择,这似乎令人困惑.有没有办法强制tkinter filedialog不要求用户覆盖?

编辑:根据答案中的建议,我尝试创建自己的保存文件对话框.

我基本上只在tkinter保存对话框中添加了一个警告:

class MySaveFileDialog(filedialog.FileDialog):

""" File save dialog that does not allow overwriting of existing file"""

def ok_command(self):

file = self.get_selection()

if os.path.exists(file):

if os.path.isdir(file):

self.master.bell()

return

messagebox.showarning("The current file name already exists. Please give another name to save your file.")

else:

head, tail = os.path.split(file)

if not os.path.isdir(head):

self.master.bell()

return

self.quit(file)

所以,它看起来很简单.然后我想:我需要创建自己的asksaveasfilename函数.

我去检查来源:

def asksaveasfilename(**options):

"Ask for a filename to save as"

return SaveAs(**options).show()

嗯..我需要看看SaveAs在做什么.

class SaveAs(_Dialog):

"Ask for a filename to save as"

command = "tk_getSaveFile"

Aaannddd ……我迷路了.我不明白这些碎片是如何组合在一起的. ‘SaveAs’只有tk_getSaveFile命令. SaveFileDialog如何在这里使用?我怎样才能创建自己的myasksaveasfilename函数?

python另存为对话框_python – 另存为文件对话框 – 如何不允许覆盖相关推荐

  1. QT三种窗口、调试终端信息打印、新建菜单、设置窗口标题名称、界面初始化、打开文件对话框、保存文件对话框

    三种窗口 QMainWindow:主窗口程序(创建菜单) QWidget:部件窗口 QDialog:对话框窗口 调试终端信息打印 #include <QtDebug>qDebug < ...

  2. 选择文件对话框、保存文件对话框、选择文件夹对话框

    选择文件对话框 // 设置图像文件过滤格式CString lv_strFilterAll = _T("所有文件(*.*)|*.*||");CString lv_strFilterJ ...

  3. MFC_选择目录对话框_选择文件对话框_指定目录遍历文件

    选择目录对话框 void C资源共享吧视频广告清理工具Dlg::OnBnClickedCls() {// 清空编辑框内容m_Edit.SetWindowTextW(L"");m_E ...

  4. cfiledialog对话框大小_CFileDialog文件对话框用法

    (1)选择文件CFileDialog dlg(TRUE, _T("*.bmp"), NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OF ...

  5. Qt中打开文件对话框和保存文件对话框

    主要是用QFileDialog的两个静态方法 1.打开对话框 QString getOpenFileName(QWidget * parent = 0, const QString & cap ...

  6. python excelwriter保存路径_python管理文件神器 os.walk

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货! 来源:诡途 https://blog.csdn.net/qq_35866846/a ...

  7. python新建文件格式_python之文件操作

    @ 打开\创建文件 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,默认在当前程序所在文件夹下创建新文件. 格式:open(文件名,访问模式),例如 f = open ...

  8. python关键词提取_python对文件中的关键词查找替换,实现自动获取配置

    1.目的 想对update_variable.py文件中的配置进行修改,数据通过系统接口自动获取 update_variable.py my_name='null' my_age=18 2.代码 up ...

  9. 用python读取股票价格_Python读取文件并给出股票价格

    我使用的是ystockquote,可以找到here.基本上,我有一个包含我所有股票符号的文件,然后我用python将其笔下并显示每只股票的价格.以下是我目前为止的代码:import ystockquo ...

最新文章

  1. Be a person
  2. class 第一个元素_第二章(第3节):网页元素定位和操作
  3. mvp内粗泄露问题_如何在一小时内启动MVP服务器
  4. iPhone清理喇叭灰尘_厉害了,iPhone 专用的网购商品历史最低价查询工具
  5. solid 设计原则 php,面向对象设计SOLID五大原则
  6. 无法将多信息文本转换为url_实体链接:信息抽取中的NLP的基础任务
  7. 为什么大家都说 SELECT * 效率低
  8. 【转】UML的9种图例解析
  9. Opencv 图像融合/泊松融合/seamlessClone
  10. blob 在线解码_roon、NAS图文全攻略 | 试听欧博旗舰RDS1电池数字界面转盘+旗舰RDB1电池解码器(三)。...
  11. 微信小程序弹窗禁止页面滚动
  12. 【存储】超融合(HCI)和云是什么以及区别
  13. 监督学习与无监督学习
  14. 狄拉克函数和广义函数 | 线性泛函
  15. pandoc 转换html,pandoc将markdown转换输出HTML slide
  16. 2021-04-12
  17. 行路难 李白
  18. Selenium自动化测试框架基础学习(元素表单操作)(Selenium操作)
  19. Java 导出Excel利用模版导出
  20. 【javasim】一个java下的建模仿真平台

热门文章

  1. 小程序与H5及混合应用测试
  2. 哪款软件可以测试刘海,什么脸型适合什么刘海 5款自测你适合哪种
  3. 自定义类型:结构体2.0(初阶+进阶)+位段+枚举+联合
  4. 2440 wince 5.0 BSP之flash驱动分析
  5. c++笔记(超详细超完整)
  6. 柔柔弱弱若若若若若若若若
  7. 计算机房的英语该怎么读,计算机机房硬件维护,Computer room hardware maintenance,音标,读音,翻译,英文例句,英语词典...
  8. 前端跨域请求get_前端接收 get 请求,用jsonp 解决跨域问题, 需要服务端的response 也要jsonp 类型...
  9. AVFoundation
  10. SpringMVC的工作原理图