Skip to main content
 首页 » 编程设计

python之使用继承的 python optparse 选项生成进程

2025年05月04日9jackei

我有一堆使用 optparse 包的 python 脚本。我想给他们一个“remote_run”选项,我想按如下方式使用:

if options.remote_run: 
    cmd = create_cmd(options) 
    os.system('ssh %s@%s "%s"' % (user, server, cmd)) 
    sys.exit(0) 

create_cmd() 函数应该创建一个等同于用于启动此进程的命令的命令,只是未设置 remote_run 选项。这个想法是让脚本将自己外包给不同的服务器,以保留当前服务器的资源。

最好的方法是什么?我通过编写自定义的 cmd 生成函数一次性为几个脚本完成了这项工作,但每当我向这些脚本添加新选项时,我都必须使这些函数保持最新,这并不理想。

请您参考如下方法:

基于 Is it possible to set the python -O (optimize) flag within a script? :

#!/usr/bin/env python 
import socket 
import subprocess 
import sys 
from pipes import quote 
 
def main(): 
    print(socket.gethostname()) 
    print(sys.argv) 
 
if __name__=="__main__": 
   if '--remote-run' in sys.argv: 
      sys.argv.remove('--remote-run') 
      command = ' '.join(map(quote, ['python'] + sys.argv)) 
      sys.exit(subprocess.call(['ssh', '%s@%s' % (user, server), command])) 
   else: 
      main()