Python文件路径和名称检索

Python文件路径和名称检索,python,tkinter,save,filepath,Python,Tkinter,Save,Filepath,好的,我在python中创建了一个“另存为”按钮,我想知道如何从保存文件的位置检索文件路径。我还想知道在保存过程中是否更改了名称,如何知道这是什么。如果我试图调用另一个.py文件中的文件名,我会收到一个错误代码。按钮的代码如下所示 谢谢 import tkinter, tkinter.constants, tkinter.filedialog class tkFile(tkinter.Frame): def __init__(self, root): tkinter

好的,我在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

您可以
导入os
,并使用
os.path.dirname(os.path.realpath(_file__))
检索文件位置


对于实际的文件名,可以使用
os.listdir(os.getcwd())
返回目录中的文件名列表。

这个问题有点让人困惑。您将获得用于打开文件的文件名。为什么不把它保存起来,以备以后需要呢?我在程序中稍后使用时很难返回文件名。这与其说是“另存为”按钮,不如说是“创建文件”按钮。您想在这里做什么
filename=tkinter.filedialog.asksaveasfilename(**self.file\u opt)
提供用户要保存到的
文件名。为什么使用
返回打开(文件名为'w')
?为什么不只是
返回文件名
,然后在以后的函数调用
中使用open(filename,'w')
来写open/create并写入文件?还是当我返回文件名并尝试稍后调用它时,我把什么作为变量而不是self。如果我把self放进去,它会说它没有定义,这使我无法调用文件名。