簡體   English   中英

使用adb shell獲取Android目錄中的文件數

[英]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"])

&&告訴外殼程序將cdfind而不是將所有參數都傳遞給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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM