我的 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)
我注意到这些解决方案都没有从 Python 重定向标准输入。为此,您可以使用以下代码片段:
import sys
sys.stdin = open('input.txt', 'r')
Run Code Online (Sandbox Code Playgroud)
希望这对您有帮助!