如何判断-i标志是否已启动python?
根据docs,您可以检查os.environ中的PYTHONINSPECT变量,它 等效
于-i。但显然,它的工作方式不同。
作品:
$ PYTHONINSPECT=1 python -c 'import os; print os.environ["PYTHONINSPECT"]'
不起作用:
$ python -i -c 'import os; print os.environ["PYTHONINSPECT"]'
我问的原因是因为如果某些条件失败,我有一个脚本调用sys.exit(-1)。很好,但是有时候我想使用-i手动调试它。我想我可以学会使用“
PYTHONINSPECT = 1 python”而不是“ python -i”,但是如果有一种通用的方法,那就太好了。
@Jweede链接
提供答案不准确。它应该是:
import os
os.environ['PYTHONINSPECT'] = '1'
@Brian答案的另一种形式:
import os
from ctypes import POINTER, c_int, cast, pythonapi
def in_interactive_inspect_mode():
"""Whether '-i' option is present or PYTHONINSPECT is not empty."""
if os.environ.get('PYTHONINSPECT'): return True
iflag_ptr = cast(pythonapi.Py_InteractiveFlag, POINTER(c_int))
#NOTE: in Python 2.6+ ctypes.pythonapi.Py_InspectFlag > 0
# when PYTHONINSPECT set or '-i' is present
return iflag_ptr.contents.value != 0
见Python的main.c中。
问题内容: 在Python脚本中,是否有任何方法可以判断解释器是否处于交互模式?这将很有用,例如,当您运行交互式Python会话并导入模块时,将执行略有不同的代码(例如,关闭日志记录)。 我已经看过判断python是否处于-i模式并在那里尝试了代码,但是,该函数仅在使用- i标志调用了Python的情况下才返回true,而在用于调用交互模式的命令没有参数时则返回true 。 我的意思是这样的: 问
我有一个相当大的bean(~100个属性),映射到几个较小的对象中。可能会出现这样的情况:较小的目标对象的属性与我的源bean中的名称相同,但语义不同。 我希望MapSTRt在这个特定的情况下只映射我使用注释显式告诉的内容,而不执行通常的自动映射。 MapStruct文档告诉我: 在生成的方法实现中,源类型(…)的所有可读属性将被复制到目标类型(…)中的相应属性中。 我没有找到任何配置选项来关闭此
我对编程很陌生。我想检查字符串s是否包含a-z字符。我使用: 但有没有办法用更短的代码来完成这一点?非常感谢
本文向大家介绍一个小示例告诉你Python语言的优雅之处,包括了一个小示例告诉你Python语言的优雅之处的使用技巧和注意事项,需要的朋友参考一下 比如, 我们希望希望检测"一段string是否以特定的字符串结尾?", 通常我们使用: 十分丑陋是吧? 如果我们检测变量needle是否是以下特定字符串之一的话, 会这样写: 但是, 我们无法在 endswith function 中使用 in, 但我
问题内容: 我试图用谷歌搜索,但找不到方法 我有一个t-sql脚本,该脚本将新列添加到表中,然后根据该表中其他列的值填充该列,最后删除一些列。这一切都很好。 当我想再次运行脚本时,会出现问题。我有一个if子句,用于检查缺少的列是否存在,但是即使if子句中的代码未运行,SSMS仍会抱怨并显示错误消息。该脚本必须能够再运行一次,并且我不希望显示错误消息! 在代码中(显然是测试代码,不想在此处转储生产代