在 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 fromBefore launch 相当于在重定向输入之前运行命令,Logs 选项卡用于将结果重定向到输出等...

这很方便有几个原因。首先是因为它以结构化的方式为您提供了 shell 语法,无需将所有内容都写在一行上(与直接在命令行上写相反)。其次,因为您可能正在与使用different shells/OS's(或想自己测试不同的shell)的开发人员一起开发一个项目,所以使用运行/配置对话框允许抽象shell语法的差异并重用或共享“运行配置”如果你想要的。

【讨论】:

以上是关于在 PyCharm 控制台模式下运行脚本时如何访问 sys.stdin的主要内容,如果未能解决你的问题,请参考以下文章

如何在IPython控制台中默认运行文件而不是终端?

如何在 pycharm 中调试包含可执行命令的 shell 脚本文件?

PyCharm 安装设置以及运行脚本

从 Pycharm 控制台调用函数后进入调试模式

如何按顺序在 pycharm 文件下运行我的文件?

PyCharm参数快捷键调试模式