python Tkinter tkFileDialog

时间:2016-09-30 12:49:53

标签: python tkinter

简而言之,

之间的区别是什么
tkFileDialog.asksaveasfile

tkFileDialog.asksaveasfilename

我无法理解文档中的内容

2 个答案:

答案 0 :(得分:4)

asksaveasfile询问用户是否有文件,然后以写入模式打开该文件并将其返回给您,以便您可以在其中书写。

asksaveasfilename向用户询问文件,然后返回该文件的名称。没有文件被打开;如果你想写入文件,你必须自己打开它。

asksaveasfilename可能优先于asksaveasfile,如果你想对文件做更好的事情,而不仅仅是向它写入数据。例如,您可能希望首先将文件作为备份复制到另一个目录。在这种情况下,您更愿意只获取文件名,以便您可以执行复制,而无需担心文件是否打开会导致复制失败。

答案 1 :(得分:2)

根据http://tkinter.unpythonic.net/ wiki:

类似于:

  

首先,您必须决定是要打开文件还是只想获取文件名以便自行打开文件。在第一种情况下,您应该在后一种情况tkFileDialog.askopenfile()中使用tkFileDialog.askopenfilename()

然后:

  

保存文件的工作方式类似。您还有两个函数变体,一个用于获取可用于保存数据的已打开文件,另一个用于获取文件名以便自行打开文件。这些功能仅在单个文件版本中提供。多文件版本毫无意义。