【发布时间】:2017-04-13 22:19:22
【问题描述】:
好的,所以我在 python 中创建了一个另存为按钮,并且想知道如何从保存它的位置检索文件路径。我还想知道在保存期间是否更改了名称如何知道那是什么。如果我尝试在不同的 .py 文件中调用文件名,我会收到错误代码。按钮代码如下
谢谢
import tkinter, tkinter.constants, tkinter.filedialog
class tkFile(tkinter.Frame):
def __init__(self, root):
tkinter.Frame.__init__(self, root)
button_opt = {'fill': tkinter.constants.BOTH, 'padx': 5, 'pady': 5}
tkinter.Button(self, text='Save As',command=self.asksaveasfilename).pack(**button_opt)
self.file_opt = options = {}
options['filetypes'] = [('all files', '.*'), ('csv files', '.csv')]
options['initialfile'] = 'data.csv'
options['parent'] = root
def asksaveasfilename(self):
filename = tkinter.filedialog.asksaveasfilename(**self.file_opt)
if filename:
return open(filename, 'w')
if __name__=='__main__':
root = tkinter.Tk()
tkFile(root).pack()
root.mainloop()
我想调用这个名字的代码如下。具体来说,我希望将名称从另存为按钮调用到另一个文件。错误代码将 self 声明为未定义。
name = savePathButton.tkFile.asksaveasfilename(self)
name 'self' is not defined
【问题讨论】:
-
这个问题有点混乱。您将获得用于打开文件的文件名。为什么不把它保存起来以备日后使用呢?
-
稍后在程序中使用时,我无法返回文件名。这更像是一个创建文件按钮而不是另存为按钮。
-
你想在这里做什么?
filename = tkinter.filedialog.asksaveasfilename(**self.file_opt)为您提供用户想要保存到的filename。为什么使用return open(filename, 'w')?为什么不只是return filename,然后在稍后的函数调用with open(filename, 'w')中写入打开/创建和写入文件? -
当我返回文件名并尝试稍后调用它时,我将什么作为变量而不是 self.如果我把 self 它说它未定义使我无法调用文件名。
标签: python tkinter save filepath