我正在编写可以由用户或通过脚本运行的通用脚本。我想对其进行设置,以便当用户双击脚本时,他们可以看到输出,但是如果它们在终端中运行,则不会提示输入。因此,在脚本的参数中,我通过以下方式进行设置:
import argparse
import os
parser = argparse.ArgumentParser()
parser.add_argument(
'--interactive', '-i', action='store_true',
default='PROMPT' not in os.environ,
help='put the application in interactive mode'
)
args = parser.parse_args()
# Do Stuff
if args.interactive:
input('Press enter to continue...')
此默认规则(选中'PROMPT' not in os.environ
)非常适合常规命令行和批处理脚本,因为PROMPT会自动设置。但是,它不适用于Powershell。有没有一种方法可以确定脚本是否已在Powershell环境中运行,从而提供类似的解决方案,使不无需用户指定任何内容即可进行交互?
我知道用户可以在powershell中以这种方式运行脚本:
$env:PROMPT = "NotTheEmptyString"; py .\test.py
但是,这似乎是一个糟糕的界面,而且我对Powershell不够了解,无法检查环境中的事物。