- 论坛徽章:
- 1
|
$ find "/tmp/tmp1234ab" -type f -regex ".*.\(7z\|zip\|rar\)$"
在目录/tmp/tmp1234ab中,查找压缩文件。
该shell命令在bash环境运行正常。基本是秒级得到结果。在屏幕上显示找到的1907个压缩文件名。
在python3.4中,
1) 使用os.system,正常。
cmd = 'find "/tmp/tmp1234ab" -type f -regex ".*.\(7z\|zip\|rar\)$"'
os.system(cmd)
正常。
2) 使用subprocess.Popen,偶尔会出现错误。
args = ['find', '/tmp/tmp1234ab', '-type', 'f', '-regex', '".*.\(7z\|zip\|rar\)$"']
p = subprocess.Popen(args, stdout=subprocess.PIPE)
x = p.wait()
msg = p.stdout.read()
当args[-1] = ".*.\(7z\|zip\|rar\)$"时,死循环。
当args[-1] = '".*.\(7z\|zip\|rar\)$"'时,秒回结果。但msg为b''。
请问,如何正确设置正则表达式的参数?
|
|