我在python 2.7.5中使用sh来调用shell程序,例如curl和mkdir,但是在Eclipse 4.3.0下的PyDev插件2.7.5中。下面的行给出了一个Unresolved Import错误:from sh import curl, printenv, mkdir, cat我可以在python shell中运行以上代码。我的确在“偏好设置”窗口sh的Libraries窗格中包含要包含的路径Interpreter - Python,所以我认为这不是问题。
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
尝试使用子流程模块来调用控制台命令。例如:
from subprocess import call
dir_name = '/foo/bar/'
call('mkdir %s'%dir_name, shell=True)
慕莱坞森
TA贡献1810条经验 获得超4个赞
在这里子过程是一个不错的选择。我个人建议使用Popen,因为它不会阻塞,并允许您等待命令以其communication()方法完成,该方法还会返回stdout和stderr。另外,请尽可能避免使用shell = True。用法:
import subprocess
testSubprocess = subprocess.Popen(['mkdir', dir_name], stdout=subprocess.PIPE)
testOut, testErr = testSubprocess.communicate()
添加回答
举报
0/150
提交
取消