【发布时间】:2016-03-16 04:30:51
【问题描述】:
我无法使用包含* 登录命令的python 子进程模块运行任何命令。
我用这种方式调用,
subprocess.Popen(
'cp /etc/varnida_sys/* /tmp/bucket/'.split(),
stdout=subprocess.PIPE).communicate()[0]
为此,我得到了,
cp: cannot stat ‘/etc/varnida_sys/*’: No such file or directory
为什么会出现这个错误,/etc/varnida_sys/genders里面有一个文件
我的调查表明,使用像 * 这样的正则表达式需要一些特殊处理。我在所有包含 * 的命令中都遇到了一些错误。
PS。当我从远程主机通过 paramiko 运行相同的命令时,我没有收到错误。
【问题讨论】:
-
添加了linux。它在 Linux 上不起作用(正如 eugene 所解释的那样),但在 Windows 上起作用(将
cp替换为copy或使用powershell -c cp ...运行)。
标签: python linux shell subprocess