前提・実現したいこと
tkinterでButtonを押したときにファイルダイアログを開くようにしています.
そのファイルダイアログを開いた後,保存を押したら,selenniumでWebスクレイピングを行い,ファイルダイアログで設定したファイル(csv)に保存するプログラムを作っています.
そこで,ファイルダイアログの保存を押す→seleniumを実装した関数を実行に移る際,関数の中に関数を入れているのですが,これを外部関数化する方法はありますか?
理由は並列処理をしたいので,外部関数にする必要があるからです.
初心者で見にくいコードですがよろしくお願いします
該当のソースコード
python
1 2from selenium.webdriver.common.keys import Keys 3import tkinter as tk 4from tkinter import filedialog 5 6 7def file_save(): 8 root = tk.Tk() 9 root.withdraw() 10 root.filename = filedialog.asksaveasfilename(initialfile=".csv",initialdir = "/",title = "保存先",filetypes = [("csv file","*.csv")]) 11 12 def check(): 13 #スクレイピング内容 14 15 if root.filename != '': 16 check() 17 18 19 20root = tk.Tk() 21root.geometry('200x200') 22root.title("スクレイピング") 23 24okButton = tk.Button(root, text='OK', command = file_save) 25okButton.place(height=20,x=50,y=100) 26 27root.mainloop() 28
試したこと
python
1from selenium.webdriver.common.keys import Keys 2import tkinter as tk 3from tkinter import filedialog 4 5 6def file_save(): 7 root = tk.Tk() 8 root.withdraw() 9 root.filename = filedialog.asksaveasfilename(initialfile=".csv",initialdir = "/",title = "保存先",filetypes = [("csv file","*.csv")]) 10 return root.filename 11 12def check(): 13 #スクレイピング内容 14 15root = tk.Tk() 16root.geometry('200x200') 17root.title("スクレイピング") 18 19okButton = tk.Button(root, text='OK', command = file_save) 20okButton.place(height=20,x=50,y=100) 21 22root.mainloop() 23 24if file_save() != '': 25 check() 26 27
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/03 05:58