2017-11-13 198 views
0

Pythonでカスタムモジュールを使わずにadbコマンドを起動しようとしました。Pythonでadbコマンドを起動する

試してみてください。

process = subprocess.Popen('cmd.exe', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, shell=True) 
process.stdin.write("adb shell uninstall com.q.q".encode("utf8")) 
process.stdin.write("adb shell install C:\\...\\qwerty.apk".encode("utf8")) 

が、これは動作していません。

答えて

1

は、あなたの正確なコマンドでテストすることはできませんが、それが正常に動作結果のないコードの仕上げ:

import subprocess 

process = subprocess.Popen('cmd.exe', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, shell=True) 
o,e = process.communicate(b"dir\n") 
print(o) 

(私は、ディレクトリの内容を取得)

ので、あなたたとえば、次の行が欠落していますターミネータを使用してコマンドを送信します。コマンドはcmdプログラムに発行されず、パイプはそれ以前に破損しています。より良い仕事と

import subprocess 

process = subprocess.Popen('cmd.exe', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None) 
process.stdin.write(b"adb shell uninstall com.q.q\n") 
process.stdin.write(b"adb shell install C:\\...\\qwerty.apk\n") 
o,e = process.communicate() 

が、これは、コマンドを実行するための非常に奇妙な方法です。 を正しく使用してください:

subprocess.check_call(["adb","shell","uninstall","com.q.q"]) 
subprocess.check_call(["adb","shell","install",r"C:\...\qwerty.apk"]) 
+0

ありがとうございます!私は間違いを見つけた。 "シェル"余分な – Art

関連する問題