Python文件路径和名称检索
Posted
技术标签:
【中文标题】Python文件路径和名称检索【英文标题】:Python file path and name retrieval 【发布时间】: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 它说它未定义使我无法调用文件名。
【参考方案1】:
您可以import os
,并使用os.path.dirname(os.path.realpath(__file__))
检索文件位置。
对于实际的文件名,您可以使用os.listdir(os.getcwd())
,它将返回目录中的文件名列表。
【讨论】:
以上是关于Python文件路径和名称检索的主要内容,如果未能解决你的问题,请参考以下文章
IPython Notebook 打开文件对话框(检索完整路径)
在目录中搜索文件并列出它们的名称和路径 - 两个级别的子文件夹