我有一个暂停用户输入的Python脚本(使用raw_input
,最近我为这个脚本创建了一个Django Web UI。现在当我通过Django执行脚本时暂停,因为它正在等待在后端输入。
如何确定脚本是从Django还是终端/ cmd / etc运行?我不想维护2个代码流,一个用于Web,另一个用于终端。
答案 0 :(得分:1)
请问!
>>> import os
>>> import sys
>>> os.isatty(sys.stdin.fileno())
True
如果为true,则表示您已连接到控制台。
答案 1 :(得分:1)
为什么不使用__main__
:https://docs.python.org/3/library/main.html
if __name__ == '__main__':
print ('running as a script')
else:
print ('running as a web app')
适用于python 2.7和3.x
答案 2 :(得分:0)
明确比隐含更好。将您的交互性包装在仅在__name__ == "__main__"
部分执行时调用的函数中。从django部分,只需将其用作库。做这些检查的大多数方法都是半魔法的,因此很脆弱。