как использовать Python SaveAs диалог - PullRequest
6 голосов
/ 17 августа 2011

Я пытаюсь найти функцию python для представления диалога «сохранить файл как», который возвращает имя файла в виде строки.

Я быстро нашел модуль tkFileDialog только для того, чтобы понять, что его функция asksaveasfilename выдает исключение, если введенный файл еще не существует, а это не то поведение, которое я ищу.

Я думаю, что ответ, который я ищу, находится в модуле Python FileDialog, но я думаю, что это метод get_selection класса SaveFileDialog.Ниже вы можете увидеть мою ошибку в интерактивном режиме, пытаясь выяснить, как использовать:

>>> FileDialog.SaveFileDialog.get_selection()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: unbound method get_selection() must be called with SaveFileDialog instance as first argument (got nothing instead)
>>> x = FileDialog.SaveFileDialog()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: __init__() takes at least 2 arguments (1 given)

Сначала я пытался понять, могу ли я просто вызвать диалоговое окно.Затем, увидев, что мне нужен экземпляр SaveFileDialog, я попытался присвоить его переменной x.Но, видимо, это также требует двух аргументов, и вот тут я действительно теряюсь.

Помощь?

1 Ответ

7 голосов
/ 17 августа 2011

Вот небольшой пример для функции asksaveasfilename(). Я надеюсь, что вы можете использовать его:

import Tkinter, Tkconstants, tkFileDialog

class TkFileDialogExample(Tkinter.Frame):

    def __init__(self, root):

        Tkinter.Frame.__init__(self, root)
        button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5}
        Tkinter.Button(self, text='asksaveasfilename', command=self.asksaveasfilename).pack(**button_opt)

        self.file_opt = options = {}
        options['filetypes'] = [('all files', '.*'), ('text files', '.txt')]
        options['initialfile'] = 'myfile.txt'
        options['parent'] = root

    def asksaveasfilename(self):
        filename = tkFileDialog.asksaveasfilename(**self.file_opt)

        if filename:
            return open(filename, 'w')

if __name__=='__main__':
    root = Tkinter.Tk()
    TkFileDialogExample(root).pack()
    root.mainloop()

Мне удалось открыть (и создать) несуществующие файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...