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

时间:2019-12-03 14:36:06

标签: python python-3.x

我的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()。我想学习如何做。

3 个答案:

答案 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.
"""