[英]Android adb shell - Find and replace text within a file using command
[英]Get number of files within Android directory using adb shell
我目前正在嘗試使用以下python代碼獲取目錄中文件的數量。
output = subprocess.check_output(["adb", "shell", "cd /sdcard/Dir/Subdir", "find . -type f | wc -l"])
print output
但是,我得到的輸出:
/system/bin/sh: cd: too many arguments
0
但是,如果我在命令提示符下輸入以下內容,則會得到所需的結果(14個文件):
adb shell
cd /sdcard/Dir/Subdir
find . -type f | wc -l
任何想法如何將命令行代碼集成到python中?
如果在列表中(而不是在字符串中)將參數傳遞給check_output
,則如果將參數傳遞給空格,則將其引起引用。
但這不是這里的主要問題。
您正在check_output
運行adb shell
,但是下check_output
命令應該通過正確的命令行或shell的標准輸入傳遞。
您可以嘗試以下(未試用):
output = subprocess.check_output(["adb", "shell", "cd /sdcard/Dir/Subdir", "&&","find . -type f | wc -l"])
( &&
告訴外殼程序將cd
與find
而不是將所有參數都傳遞給cd
)
或以交互方式運行您的shell,並像輸入命令一樣傳遞命令(為此使用Popen
):
p = subprocess.Popen(["adb", "shell"],stdin=subprocess.PIPE)
out,err = p.communicate("cd /sdcard/Dir/Subdir\nfind . -type f | wc -l\n")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.