简单的Python shell包装器脚本(使用os.execv?)
我想在特定的shell命令周围添加一个包装器。这将只在Linux中运行,我不关心跨平台支持。这段代码可以工作,但是有更好的方法来实现这一点吗?还是我要让自己面对任何奇怪的行为简单的Python shell包装器脚本(使用os.execv?),python,shell,wrapper,python-os,Python,Shell,Wrapper,Python Os,我想在特定的shell命令周围添加一个包装器。这将只在Linux中运行,我不关心跨平台支持。这段代码可以工作,但是有更好的方法来实现这一点吗?还是我要让自己面对任何奇怪的行为 import os import sys # Do my personal validation here do_some_validation(sys.argv) # Now call the real program os.execv('/usr/bin/some-command', sys.argv) 谢谢
import os
import sys
# Do my personal validation here
do_some_validation(sys.argv)
# Now call the real program
os.execv('/usr/bin/some-command', sys.argv)
谢谢 您可以使用
subprocess
在某种程度上优于os
,因为它可以更好地控制命令的执行,而os
只是将其抛出到bash
您可以使用
subprocess
在某种程度上优于os
,因为它可以更好地控制命令的执行,而os
只是将其抛出到bash
子流程具体为我提供了什么?当我在发布这篇文章之前在谷歌上搜索时,我看到你的评论到处都有变化,但在这种情况下,我想用我正在包装的可执行文件替换它。我不需要获取返回码、out/err、执行错误处理等。当然,在您的情况下,您可以使用操作系统。根本不需要切换到subprocess,但将来如果您要扩展脚本,可能需要一些返回代码、管道等,您需要它。subprocess具体为我提供了什么?当我在发布这篇文章之前在谷歌上搜索时,我看到你的评论到处都有变化,但在这种情况下,我想用我正在包装的可执行文件替换它。我不需要获取返回码、out/err、执行错误处理等。当然,在您的情况下,您可以使用操作系统。根本不需要切换到子流程,但将来如果要扩展脚本,可能需要一些返回代码、管道等,oum ya需要它。
import subprocess
subprocess.call(['/usr/bin/some-command', arg1, arg2])