当我执行脚本时,出现以下错误:
['grep', 'PORTALSHARED', '*']
grep: *: No such file or directory
当我在shell上执行时,相同的命令也可以正常工作。
下面是脚本:
a = shlex.split('grep PORTALSHARED *')
print a
for pdir, _, _ in os.walk(r'/Users/skandasa/perforce/projects/releases/portal-7651'):
os.chdir(pdir)
print os.getcwd()
subprocess.call(a)
我尝试添加,shell = True
但是没有用。
*
由shell扩展,因此,如果要subprocess.call()
对此进行处理,则需要传递shell=True
。例子 -
a = 'grep PORTALSHARED *'
subprocess.call(a, shell=True)
请注意,使用时shell=True
,您应该发送完整的字符串作为命令,而不是split
版本。
但是鉴于此,我认为您并不是真的需要os.chdir()
,您可以尝试-
a = 'grep PORTALSHARED {}'
for pdir, _, _ in os.walk(r'/Users/skandasa/perforce/projects/releases/portal-7651'):
subprocess.call(a.format(pdir + '/*'), shell=True)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句