wrap python os.system方法

时间:2015-01-12 12:19:38

标签: python wrapper os.system

我有以下perl模块用于在perl脚本中包装CORE :: system:

package system_wrapper;

sub check_system {
    my ($cmd) = @_;

    my $err = CORE::system($cmd);
    if ($err != 0) {
        print "Error occured when executing: $cmd. Exiting.\n";
        exit(-1);
    }
}
*CORE::GLOBAL::system = \&check_system;

1;
__END__

我试图在python中实现同样的功能。我无法弄清楚如何使用装饰器将here描述的语法扩展到此os方法。

我希望调用包装的方法与展开的方法完全相同。

即。 status = os.system("mycmd" + " myarg")

1 个答案:

答案 0 :(得分:1)

你可以追逐补丁os.system。将真实os.system重命名为其他内容, 然后使用它创建一个函数并将其分配给os.system

def my_os_system(cmd):
    err = os._system(cmd)
    if err != 0:
        print "Error occured when executing: %s. Exiting." % cmd
        sys.exit(-1)

os._system = os.system
os.system = my_os_system