python - 调用需要使用文本文件中的数据进行键盘输入的 Python 函数

标签 python python-3.x

使用 C/C++ 类比,我想将文件的内容通过管道传输到标准输入。

我有一个 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() 的输入。

最佳答案

您正在查找 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")

关于python - 调用需要使用文本文件中的数据进行键盘输入的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48030116/

相关文章:

python - 我可以从 South 生成适用于不同数据库 [sqlite 和 postgresql] 的模式迁移吗?

python - 将数据帧行值和列标题打印为字符串

python - 如何使DataFrame列长度相等?

python - 从url读取csv并通过pandas将其推送到数据库中

python - 了解 cv2.threshold() 函数

python - Pandas 对于多索引有什么样的合并、连接或连接

python - 比较两个 Pandas 列并设置为标签

python - 代码未附加正确的对象...为什么?

python - 使用 Python 3 计算 gf(2^8) 中的乘法逆的纯 Python 方法

python - 如何使用 matplotlib 在 Python 3 中操作数据?