在 PyCharm 控制台模式下运行脚本时如何访问 sys.stdin
Posted
技术标签:
【中文标题】在 PyCharm 控制台模式下运行脚本时如何访问 sys.stdin【英文标题】:How do I access sys.stdin when running a script in PyCharm console mode 【发布时间】:2020-10-26 07:52:06 【问题描述】:这在我在 PyCharm (v2020.1) 终端中运行时有效,但是当我通过控制台运行它时,它只是挂起:
#test.py
import sys
txt = sys.stdin
print(txt.read())
# readme.txt
random string
【问题讨论】:
您能尝试使用Redirect input from
选项吗?它位于屏幕截图的底部。
谢谢,这似乎有效。如果我只想捕获命令行参数怎么办?奇怪的是我的方式没有产生预期的结果
【参考方案1】:
在运行配置对话框中,Parameters
字段是指定要传递给脚本的命令行参数,然后可以使用sys.argv
访问该脚本。要从 sys.stdin
获取输入,您可以使用 Redirect input from
字段。
通常的 shell redirection functionalities 每个都有自己的字段(注意它们在 shell 之间可能不同,例如与 Windows CMD 比较)。每个功能对应一个字段,Redirect input from
、Before launch
相当于在重定向输入之前运行命令,Logs
选项卡用于将结果重定向到输出等...
这很方便有几个原因。首先是因为它以结构化的方式为您提供了 shell 语法,无需将所有内容都写在一行上(与直接在命令行上写相反)。其次,因为您可能正在与使用different shells/OS's(或想自己测试不同的shell)的开发人员一起开发一个项目,所以使用运行/配置对话框允许抽象shell语法的差异并重用或共享“运行配置”如果你想要的。
【讨论】:
以上是关于在 PyCharm 控制台模式下运行脚本时如何访问 sys.stdin的主要内容,如果未能解决你的问题,请参考以下文章