

Python3.6.2 と windows10 の環境です。

[code]

    from tkinter import *
    import subprocess
    
    
    def func1():
        print("クリック")
    
    
    def func2():
        subprocess.run(("start", "timeout", "/T", "10"), shell=True)
    
    
    root = Tk()
    Button(root, text="ボタン1", command=func1).pack()
    Button(root, text="ボタン2", command=func2).pack()
    mainloop()
    
[/code]

起動する時は、拡張子pywでコンソール非表示です。  
ボタン1をクリック時に、コマンドプロンプトが表示されてprintするようにするにはどうしたらよいでしょうか（func1は例なのですぐに消えてもかまいません）？  
ボタン2のようにsubprocessで行ったようにしたいのですが。  
よろしくお願いします。


CC BY-SA 3.0
2018-01-28T08:59:45.457
41261
2018-03-30T11:40:49.777
2018-01-28T09:07:43.253
20982
20982
question
python tkinter
Python3.6.2　tkinterボタンを押してコマンドプロンプトにprintする方法


printの内容を確認するために標準出力を変更する方法は[本家SO](https://stackoverflow.com/a/3675815)に載っています。

**_この回答はコンソールを表示する方法ではありません。_**  
あくまでも出力内容をコンソール以外で表示する対応方法ですので、ご注意ください。

[code]

    from tkinter import *
    import subprocess
    import sys
    
    def func1():
        print("クリック")
    
    
    def func2():
        subprocess.run(("start", "timeout", "/T", "10"), shell=True)
    
    #追記モード(最新ログのみ表示したい場合は"a"→"w")
    sys.stdout = open("mylog.txt", "a")
    root = Tk()
    Button(root, text="ボタン1", command=func1).pack()
    Button(root, text="ボタン2", command=func2).pack()
    mainloop()
    
[/code]


CC BY-SA 3.0
2018-01-29T05:07:55.763
41277
2018-01-30T03:29:16.907
2018-01-30T03:29:16.907
9820
9820
41261
answer