我的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()
。我想学习如何做。
答案 0 :(得分:2)
输入从标准输入中读取内容,因此,如果您使用bash,则可以将stdin重定向到文件
无需更改代码
在bash中,您将运行
cat textfile | programm.py
或
< textfile programm.py
答案 1 :(得分:0)
您可以将文件读入如下列表:
with open('filename.txt', 'r') as file:
input_lines = [line.strip() for line in file]
s将是索引i中的数据。
n = int(input())
for i in range(n):
s = input_lines[i]
# ...
确保您的py文件与txt文件位于同一目录。
答案 2 :(得分:0)
您可以创建一个test.py
文件,该文件用于运行测试。在test.py
中,您将阅读input.txt
的内容并导入程序。
例如,在test.py
文件中。
import main_code
with open('input.txt', 'r') as file:
lines = file.readlines()
for line in lines:
s = line
"""
working with the input.
"""