如何从 Python 中的文本文件中读取 input()

新手上路,请多包涵

我的 Python 程序请求一些用户输入:

 n = int(input())
for i in range(n):
    s = input()
    # ...

出于调试目的,我想创建一个这样的测试 input.txt 文件:

 3
string1
string2
string3

这样我就不需要在每次启动它进行调试时手动从键盘输入数据。

有什么方法可以从文本文件而不是键盘获取 input() (无需更改程序代码)。

我正在使用 Wing Personal 作为开发工具。

更新

我肯定知道,存在能够测试 python 程序传递各种输入并将输出与已知答案进行比较的机器人。我猜这些机器人不会用铁手指敲击键盘。也许他们使用命令行工具将 input.txt 传递给 Python,以便它从该文件而不是键盘读取 input() 。我想学习如何去做。

原文由 Nick 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 986
2 个回答

输入从标准输入读取,所以如果你使用 bash,你可以将标准输入重定向到一个文件

无需更改代码

在 bash 中你会运行类似

cat textfile | programm.py

或者

< textfile programm.py

原文由 Gorock 发布,翻译遵循 CC BY-SA 4.0 许可协议

我注意到这些解决方案都没有从 Python 重定向标准输入。为此,您可以使用以下代码片段:

 import sys
sys.stdin = open('input.txt', 'r')

希望对您有所帮助!

原文由 George Ogden 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题