[英]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.