【问题标题】:How to write to a already made .txt file python如何写入已经制作的.txt文件python
【发布时间】:2014-07-06 02:34:54
【问题描述】:

我制作了一个非常基本的文本编辑器,您可以在其中保存到新的 .txt 文件或打开现有的文本文件。但是我希望能够在用户打开一个文本文件并点击保存按钮时将他们打开的文件替换为新文本。有什么可以让我开始的想法吗?

from Tkinter import *
import tkFileDialog

class Application(Frame):
def __init__(self, master):
    Frame.__init__(self,master)
    self.grid()
    self.Create_Widgets()

def Create_Widgets(self):
    self.SButton = Button(self,width=35)
    self.SButton["text"]="Save"
    self.SButton["command"]=self.Save
    self.SButton.grid(row=0,column=0)

    self.OButton = Button(self,width=35)
    self.OButton["text"]="Open"
    self.OButton["command"]=self.Open
    self.OButton.grid(row=0,column=1)

    self.Cont = Text(self,width=60,height=40)
    self.Cont.grid(row=1,column=0,columnspan=2)

def Save(self):
    Content=self.Cont.get(1.0,END)
    File = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt")
    if File is None:
        return
    File.write(Content)
    File.close()

def Open(self):
    Content=self.Cont.get(0.0,END)
    File1 = tkFileDialog.askopenfilename()
    File2 = open(File1,"r")
    Cont2 = File2.read()
    self.Cont.delete(1.0, END)
    self.Cont.insert(1.0, Cont2)

 root=Tk()
 root.title="Basic Notepad 0.1"


 app=Application(root)

 root.mainloop()

【问题讨论】:

  • 只写文件。你有什么问题?
  • 如果您打开了文件进行读取而不是关闭它并打开它进行写入。
  • @PadraicCunningham 好吧,我需要找到最后打开的文件(它的位置)然后重新写入其内容,但我只是给了我一个弹出窗口来创建一个新文件。
  • 那你要记住文件名,不要打开弹窗。
  • 要记住前一个文件的位置,只需将其写入另一个文件即可。

标签: python text tkinter editor


【解决方案1】:

记住打开文件的名称(例如"old_name"),然后在中使用它

tkFileDialog.asksaveasfile(initialfile="old_name")

顺便说一句:您可以创建按钮 SAVESAVE AS...
第一个可以在不询问名称的情况下写入文件。

【讨论】:

  • 你能给我解释一下吗?我以前从未见过 python 中的初始文件?
  • 运行它,你会在文件名字段的弹出窗口中看到“old_name”。
  • 我已经解决了这个问题,方法是将您打开的文本文件存储在一个变量中,并将该文件替换为具有相同名称但新文本的新文件。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 2013-12-24
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 2018-06-18
相关资源
最近更新 更多