2011-08-17 48 views
6

ファイル名を文字列として返す 'ファイルを保存する'ダイアログを表示するためのPython関数を探しています。Python SaveAsダイアログの使い方

私はすぐにtkFileDialogモジュールを見つけました。入力したファイルが存在しない場合は、asksaveasfilename関数が例外をスローすることを認識しました。これは私が探している動作ではありません。

私が探しているのはPython FileDialogモジュールですが、の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つ割り当てようとしました。しかし、明らかにそれにも2つの議論があり、それが私が本当に失われるところです。

ヘルプ?

答えて

7

ここには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() 

存在するファイルを開く(作成する)ことができました。

関連する問題