raspberry piとandroidでファイル送受信をするのにobexpushdを利用しようとしているのですが、
subprocess.Popenを使うことでタイムアウトを利用して意図的にkillできることを知り実行してみたのですが、全然終わってくれません。
以下コードです
python3
1import subprocess 2import os 3def main(): 4 5 with open("/home/pi/clientFiles/currentWifi","r") as file: 6 tmp=int(file.readline()) 7 cmd=subprocess.Popen(["sudo","obexpushd","-B","-n","-o","/home/pi/clientFiles"]) 8 print(tmp) 9 while(True): 10 try: 11 cmd.wait(30) 12 cmd.kill() 13 except subprocess.TimeoutExpired: 14 print("catch") 15 if(count(os.listdir())-1>tmp): 16 cmd.kill() 17 break 18 with open("/home/pi/clientFiles/currentWifi","w") as file: 19 tmp+=1 20 file.write(tmp) 21 22main()
最初のほうはpopen.waitの引数をtimeout=30としていたのですが、うまく動かず
現在は普通に数値だけを入れています。多分、可読性関連だと思います。
androidアプリのほうはボタンを押してbluetoothパッケージに投げてそこから送信する形です。
ファイルの送受信は正しく作動しています。
このobexpushdのコマンドは普通にコマンドラインから実行するとctlr+Cを押さないと終わらないコマンドです。
回答のほどよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/17 11:52