2017-04-13 146 views
0

好吧,所以我做了一个保存为Python的按钮,并想知道如何从保存它的位置检索文件路径。我也想知道在保存过程中名称是否改变了,怎么知道它是什么。如果我尝试在不同的.py文件中调用文件名,我收到一个错误代码。代码按钮低于Python文件路径和名称检索

感谢

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() 

,我想的名字叫成是下面的代码。具体来说,我正在寻找从另存为按钮调用名称到另一个文件。错误代码在未定义状态下表明自己。

name = savePathButton.tkFile.asksaveasfilename(self) 

name 'self' is not defined 
+0

这个问题有点混乱。你会得到文件名,用来打开文件。为什么不在以后需要时将它保存? –

+0

在程序中稍后使用时,我很难返回文件名。这更像是创建文件按钮而不是另存为按钮。 –

+0

你在这里试图做什么? 'filename = tkinter.filedialog.asksaveasfilename(** self.file_opt)'给你用户想要保存的'filename'。为什么使用'return open(filename,'w')'?为什么不只是'返回文件名',然后在后面的函数调用'打开(文件名,'W')'写开放/创建和写入文件? – pstatix

回答

0

您可以import os,并使用os.path.dirname(os.path.realpath(__file__))来检索文件位置。

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