调用Python函数,该函数期望键盘输入包含来自文本文件的数据

时间:2017-12-30 01:25:21

标签: python python-3.x

使用C / C ++类比,我想将文件的内容传递给stdin。

我有一个Python功能,提示用户输入学生姓名和成绩,并创建一个列表列表。我想将名称和等级放在文本文件中,并将其作为此函数的输入,而不是输入100个名称和等级。我该怎么做呢?代码片段如下:

def enter_grades(num_students):
    class_grades = []
    for i in range(num_students):
       class_grades.append([input(), float(input())])
    print( class_grades)
    return class_grades

有一个文件" grades.txt"学生姓名和成绩。想要将其内容作为输入提供给enter_grades()。

1 个答案:

答案 0 :(得分:2)

您正在找到freopen()的python版本。

您可以将sys.stdin设置为文件对象,只需执行以下操作:

import sys

sys.stdin = open("/path/to/file.txt", "r")
text = input()
print(text)

input()函数现在将从文件而不是用户输入中读取数据。

更多用法

同样,如果要将标准输出或标准错误重定向到文件,只需在sys中设置相应的变量:

sys.stdout = open("stdout.txt", "w")
sys.stderr = open("stderr.txt", "w")