Python文件路径和名称检索
好的,我在python中创建了一个“另存为”按钮,我想知道如何从保存文件的位置检索文件路径。我还想知道在保存过程中是否更改了名称,如何知道这是什么。如果我试图调用另一个.py文件中的文件名,我会收到一个错误代码。按钮的代码如下所示 谢谢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
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放进去,它会说它没有定义,这使我无法调用文件名。