繁体   English   中英

保存后扩展名未添加到文件名

[英]Extension not added to file name after saving

in my program. 我得到的文件拯救他们之后没有扩展名的,虽然我给他们的扩展filetypes 在我的计划。 , but I want to let user decide to choose an extension without messing with code. 我只能使用defaultextension 来执行此操作,但我想让用户决定选择一个扩展名而不会弄乱代码。 , for example: defaultextension=".txt" , it adds 2 .txt to my file name, like filename.txt.txt . 另外,当我使用defaultextension ,例如: defaultextension=".txt" ,它会将2 .txt添加到我的文件名中,例如filename.txt.txt 这是我的片段:

from tkinter import *
import tkinter.filedialog

root = Tk()
root.title("Saving a File")
root.geometry("500x500-500+50")

def save():
    filename = filedialog.asksaveasfilename(
        initialdir="D:",
        title="Choose your file",
        filetypes=(
            ("Text Files", "*.txt"),
            ("Python Files", "*.py"),
            ("All Files", "*.*")
            )
        )

    try:
        fileobj = open(filename, 'w')
        fileobj.write(text.get(0.0, "end-1c"))
        fileobj.close()
    except:
        pass

button = Button(root, text="Save", command=save,
                     cursor='hand2', width=30, height=5,
                     bg='black', fg='yellow', font='Helvetica')
button.pack()

text = Text(root)
text.pack()

我写文件没有任何问题,我的问题仅在于扩展名

额外信息:

  • 我在Windows 7上
  • 我没有选中Hide extensions for known file types (我尝试过选中版本,但没有任何改变)

大! . 我本人只是通过添加defaultextension="*.*" 找到了答案。 , most of them only downvoted my question explaining their reasons. 感谢所有尝试回答我的问题的人,尽管他们都没有解决我的问题, ,他们中的大多数人只是对我的问题投了反对票, 解释其原因。 好吧,如果您不了解解决方案,这不是我的错,哈哈! 感谢其他尝试帮助我的人! 不胜感激! :)

idlelib.IOBinding(3.6中的.iomenu)具有此代码,可在未显式输入时添加.py或.txt。 我不知道/不记得“文本”是什么意思,但是由于该代码有效,因此我将其搁置一旁。

    filetypes = [
        ("Python files", "*.py *.pyw", "TEXT"),
        ("Text files", "*.txt", "TEXT"),
        ("All files", "*"),
        ]
    [...]
    def asksavefile(self):
        dir, base = self.defaultfilename("save")
        if not self.savedialog:
            self.savedialog = tkFileDialog.SaveAs(
                    parent=self.text,
                    filetypes=self.filetypes,
                    defaultextension=self.defaultextension)
        filename = self.savedialog.show(initialdir=dir, initialfile=base)
        return filename

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM