我正在尝试在Python项目中使用终端命令find path -print0 | xargs -0 stat -f '%m %N'
。显然,我需要提供path
,因此我已经按照其他地方的建议在数组内拆分了表达式。目前我有subprocess.call(['find', path, '| xargs -0 stat -f "%m %N"'])
。
代码可以运行,但是path
之后的所有内容都将被忽略。实际上,它会引发错误find: | xargs -0 stat -f "%m %N": No such file or directory
,因此很明显我不理解命令的构成方式。
任何帮助都会很棒
编辑:
实际上,我认为从变量中提供参数可能会更好。所以我尝试了command = 'find ' + src_dir + ' -print0 | xargs -0 stat -f \'%m %N\''
使用print
看起来不错,但是再次插入subprocess.call(osx_command)
时,我得到了[Errno 2] No such file or directory:
答案 0 :(得分:1)
尝试添加shell = True
subprocess.call(['find',path,'| xargs -0 stat -f“%m%N”'],shell = True)
shell = True表示通过shell执行程序,传递给程序的所有用户输入均根据所调用shell的语法和语义规则进行解释。