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

Nic*_*ick 9 python python-3.x

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

n = int(input())
for i in range(n):
    s = input()
    # ...
Run Code Online (Sandbox Code Playgroud)

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

3
string1
string2
string3
Run Code Online (Sandbox Code Playgroud)

这样我每次启动调试时都不需要从键盘手动输入数据。

有没有办法input()从文本文件中获取,而不是从键盘获取(不更改程序代码)。

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

更新

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

Gor*_*ock 13

输入从标准输入读取,因此如果您使用 bash,您可以将 stdin 重定向到文件

无需更改您的代码

在 bash 你会运行类似的东西

cat textfile | programm.py
Run Code Online (Sandbox Code Playgroud)

或者

< textfile programm.py
Run Code Online (Sandbox Code Playgroud)

  • 我想你的意思是,`cat textfile | python 程序.py` (4认同)
  • 他还问(不改变程序代码)。所以我提供了一种无需接触代码即可更改标准输入的方法 (2认同)

Geo*_*den 8

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

import sys
sys.stdin = open('input.txt', 'r')
Run Code Online (Sandbox Code Playgroud)

希望这对您有帮助!