如何检测脚本是否从Django或命令提示符运行?

2024-09-30 04:33:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个暂停供用户输入的Python脚本(使用raw_input),最近我为这个脚本创建了一个djangowebui。现在,当我通过Django执行脚本时,它会暂停,因为它正在等待后端的输入。你知道吗

如何确定脚本是从Django还是terminal/cmd/etc运行的?我不想维护两个代码流,一个用于web,另一个用于终端。你知道吗


Tags: django代码用户脚本cmdweb终端input
3条回答

随便问!你知道吗

>>> import os
>>> import sys
>>> os.isatty(sys.stdin.fileno())
True

如果为true,则连接到控制台。你知道吗

为什么不使用__main__https://docs.python.org/3/library/main.html

if __name__ == '__main__':
    print ('running as a script')
else:
    print ('running as a web app')

适用于Python2.7和3.x

显性比隐性好。将交互性包装到一个函数中,该函数仅在执行__name__ == "__main__"部分时调用。从django部分,只需将其用作库。大多数做这种检查的方法都是半魔法的,因此很脆弱。你知道吗

相关问题 更多 >

    热门问题