如何访问python命令行选项(不是args)

Pet*_*r B 5 python command line

调用python程序的命令行类似于:

$ python [python_options] myprogram.py [args]

我知道我可以访问args(sys.argv),但是如何访问python_options?

我不经常使用python_options,但有时它很有用,例如-u(无缓冲输出)或-3(检查python3不兼容性).

确切地说,我想创建一个子进程,这是另一个python程序,我想传递它相同的python_options.(我知道sys.flags,但这不是我想要的.我不想要标志的值;我想要在命令行中使用的实际字符串设置这些标志).

Rol*_*oll 0

一种可能的解决方案是手动生成标志字符串。

import sys

def getFlags():
    flags = ['-d', '-3', '-Q', '-Qnew', '-i', '-i', '-O',
             '-B', '-s', '-S', '-E', '-t', '-v', '-U', '-b', '-R']
    return ' '.join({s for s, f in zip(flags, sys.flags) if f})

print getFlags()
Run Code Online (Sandbox Code Playgroud)

请参阅Python 文档了解 sys.flags

编辑:-R如果您的 python 版本低于2.7.3.