gpt4 book ai didi

python - 如何更改 jupyter 笔记本中的标准输入?

转载 作者:行者123 更新时间:2023-12-01 09:29:47 24 4
gpt4 key购买 nike

我想将一个文件分配给sys.stdin,以便我可以使用input()读取文件的内容。下面的代码按照脚本的预期运行,但在笔记本中编写时会出现问题。调用函数 input() 后,它向我显示了一个输入教科书,但我不想要它,因为我将 stdin 重新分配给了一个文件。因此,我希望改为读取文件中的行。

import sys
file = open("input.in")
sys.stdin = file
val = input()
print(val)

在我看来,笔记本忽略了sys.stdin。我找不到发生这种情况的原因以及如何解决它。

谢谢。

更新

我最终得到了重写input函数。它可以完成这项工作,但我将问题悬而未决,看看是否有人有更好的解决方案。

file = open("input.in")
input = file.readline

最佳答案

您可以将文件读取到内存缓冲区中,然后指示 stdin 从中读取。例如,重新显示文件

import sys
import io # in python2, import StringIO

input_file = open('myfile.txt', 'r')
sys.stdin = io.StringIO(input_file.read())

for line in sys.stdin:
print(line, end='')

为了您的目的,您可能需要

import sys
import io # in python2, import StringIO

input_file = open('myfile.txt', 'r')
sys.stdin = io.StringIO(input_file.read())

val = sys.stdin.readline()
# Rest of program using val

关于python - 如何更改 jupyter 笔记本中的标准输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50069402/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com