2017-05-19 8 views
-1

文字列をテキストに書き込もうとしています。これはコードです:私は多くの方法ではなく、成功を試してみましたtkinterとpython3.xボタンの設定

def retrieve_input(): 
    inputValue = textBox.get("1.0", "end-1c") 
    c = inputValue 

    def open(): 
     f = open("writetest.txt", "a") 

     def write_input(): 
      f.write(c) 

filemenu.add_command(label="Write to txt", command=lambda:retrieve_input()) 

、全体のコードが長いと本当にきれいではありません、私はからの書き込みと読み込みに関するコマンドを学ぶためにしてみてください。

def retrieve_input(): 
    inputValue = textBox.get("1.0", "end-1c") 
    c = inputValue 

    with open("writetest.txt", "a") as f: 
     f.write(c) 

私は本当にすべき理由はない持っていたすべての機能を処分した:

+0

「成功していない」とはどういう意味ですか?間違ったデータが書き込まれていますか?データが書き込まれていませんか?関数は呼び出されていませんか?プログラムはクラッシュしますか? 'open'メソッドの中で' c'の値を調べて、それがあなたがそう考えるべきものであることを確認しましたか?これは 'retrieve_input'関数のコードですか?あなたは 'open'を定義しますが、呼び出していません。 –

答えて

1

私はそれはあなたのポストであるが、ここではきれいな方法であるとして、あなたのインデントが実際にあるかどうかを確認していません。さらに、ファイルの処理にwith命令を使用することを選択しました。

のほかに、あなたの関数は、道に短くすることができます:あなたがファイルを開いたが、後にそれを閉じていなかった

def write_input(): 
    with open("writetest.txt", 'a') as f: 
     f.write(textBox.get("1.0", "end-1c")) 

注意。これはメモリリークにつながる可能性があります。 withブロックを使用すると、自動的にファイルを閉じるため、ブロックされたことからブロックされます。また、あなたのコードではtextBoxが定義されていないので、引数として渡すか、globalと宣言してください(後者は避けてください)。

関連する問題