簡體   English   中英

如何保存到已制成的文件python不起作用

[英]how to save to a already made file python not working

我有一個簡單的文本編輯器程序。 您可以在其中單擊另存為,然后選擇保存該文件的位置。 但是,如果單擊保存按鈕保存到該文件,我會得到他的錯誤:

TypeError:強制轉換為Unicode:需要字符串或緩沖區,找到文件

這是保存並保存為代碼的一部分。 我對所有功能都有一個變量(self.Saved):

def Save(self):
    File = open(self.Saved,"w") --Where error occurs 
    if File is None:
        return
    self.Cont.insert(END,"<fg='" + self.FontColor + "'>")
    self.Cont.insert(END,"<bg='" + self.BackgroundColor + "'>")
    Content=self.Cont.get(1.0,END)
    File.write(Content)
    File.close()

def SaveAs(self):
    File = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt")
    if File is None:
        return
    self.Saved = File
    self.Cont.insert(END,"<fg='" + self.FontColor + "'>")
    self.Cont.insert(END,"<bg='" + self.BackgroundColor + "'>")
    Content = self.Cont.get(1.0,END)
    File.write(Content)
    File.close()

__init__設置self.Saved = None並執行

def Save(self):
    if not self.Saved:
        self.SaveAs()
    else:
        File = open(self.Saved,"w")  # Where error occurs 
        if File is None:
            return
        self.Cont.insert(END,"<fg='" + self.FontColor + "'>")
        self.Cont.insert(END,"<bg='" + self.BackgroundColor + "'>")
        Content=self.Cont.get(1.0,END)
        File.write(Content)
        File.close()

編輯:使用asksaveasfilename獲取文件名

def SaveAs(self):

    filename = tkFileDialog.asksaveasfilename(defaultextension=".txt")
    if not filename:
        return
    self.Saved = filename

    File = open(self.Saved,"w")  
    if File is None:
       return
    self.Cont.insert(END,"<fg='" + self.FontColor + "'>")
    self.Cont.insert(END,"<bg='" + self.BackgroundColor + "'>")
    Content = self.Cont.get(1.0,END)
    File.write(Content)
    File.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM