繁体   English   中英

使用 Python 使用 ADB 列出文件

[英]listing files with ADB using Python

我想列出我的 Android 设备的目录下的文件列表,但是我只想要没有点的文件(即 - 没有隐藏文件和具有显式扩展名的文件)。

我可以在移动设备上使用find做到这一点:

find /mydir -type f -not -name *.*

我可以对主机上的adb做同样的事情(这里我需要\"来保护我的正则表达式)

adb shell find /mydir -type f -not -name \"*.*\"

但是我没有办法让它在我的主机触发的 Python 脚本中工作。 我所做的是:

list_command = [
            'adb',
            'shell',
            'find',
            '/mydir'
            '-type',
            'f',
            '-not',
            '-name',
            r'\'*\.*\''
        ]
subprocess.check_output(list_command)
            .decode()
            .splitlines()

无论路径中是否出现点,它实际上都给了我所有文件。 在 Python 中运行此adb命令的正确方法是什么?

由于您仍在传递 glob,而不是正则表达式,因此不应转义点字符,请使用"'*.*'"

list_command = [
            'adb',
            'shell',
            'find',
            '/mydir'
            '-type',
            'f',
            '-not',
            '-name',
            "'*.*'"
        ]

只需在单引号内使用它。 请注意,您不需要在双引号字符串文字中转义单引号, "'*.*'"比相应'\'*.*\''单引号字符串文字更干净。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM