gpt4 book ai didi

android - 使用 adb shell 获取 Android 目录中的文件数

转载 作者:行者123 更新时间:2023-11-29 19:18:15 25 4
gpt4 key购买 nike

我目前正在尝试使用以下 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,但接下来的命令应该通过正确的命令行或 shell 的标准输入传递。

您可以尝试以下(未经测试):

output = subprocess.check_output(["adb", "shell", "cd /sdcard/Dir/Subdir", "&&","find . -type f | wc -l"])

(&& 告诉 shell 将 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")

关于android - 使用 adb shell 获取 Android 目录中的文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com