sh
python有时使用标准 os 和 subprocess 库会有点棘手, 但是在某些情况下,直接调用shell中的命令,比起自己重新造轮子,可能更加省时,且更加方便,但是我们不能总是使用os.system(your_cmd)来执行,这是可以用sh包
没有的话,
pip install sh
使用方法, 和基本的python函数一样
from sh import *
sh.pwd()
sh.mkdir('new_folder')
sh.touch('new_file.txt')
sh.whoami()
sh.echo('this is awesome')
有时后,from sh import *可能会报错
In [1]: from sh import *
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-1-2d92f8984063> in <module>
----> 1 from sh import *
~/.conda/envs/tf1.14/lib/python3.6/importlib/_bootstrap.py in _handle_fromlist(module, fromlist, import_, recursive)
~/.conda/envs/tf1.14/lib/python3.6/site-packages/sh.py in __getattr__(self, name)
3347
3348 def __getattr__(self, name):
-> 3349 return self.__env[name]
3350
3351 def __call__(self, **kwargs):
~/.conda/envs/tf1.14/lib/python3.6/site-packages/sh.py in __getitem__(self, k)
3185 if k == "__all__":
3186 raise RuntimeError("Cannot import * from sh. \
-> 3187 Please import sh or import programs individually.")
3188
3189
RuntimeError: Cannot import * from sh. Please import sh or import programs individually.
这个时候你可以选择一个个加载
from sh import pwd,mkdir,touch,whoami,echo