文件结束输入Python
我正在努力解决卡蒂斯的问题。完整问题可在以下链接中找到: 问题的一部分让我感到困惑的是:“输入是一个多达2000条命令的序列,每行一条,在文件末尾结束。” 这个输入的代码是什么?我试着这样做:文件结束输入Python,python,eof,Python,Eof,我正在努力解决卡蒂斯的问题。完整问题可在以下链接中找到: 问题的一部分让我感到困惑的是:“输入是一个多达2000条命令的序列,每行一条,在文件末尾结束。” 这个输入的代码是什么?我试着这样做: import sys for line in sys.stdin.readlines(): #print('something') 在这之后,我继续从上面缩进的正常程序。我的问题是,如何测试程序是否在cmd中工作?我想测试一些情况,但是当我输入一些内容时,命令提示符会一直等待其他结果,而不是打
import sys
for line in sys.stdin.readlines():
#print('something')
在这之后,我继续从上面缩进的正常程序。我的问题是,如何测试程序是否在cmd中工作?我想测试一些情况,但是当我输入一些内容时,命令提示符会一直等待其他结果,而不是打印任何内容。当我按下控制键C时,程序突然结束。在接收用户输入直到文件结束时,我们应该如何检查程序是否工作 这里的问题是,
readlines()
渴望而不是懒惰。这意味着它将把整个文件读入内存(直到EOF),然后将其拆分为行并返回这些行的列表。因此,在使用交互式stdin时,sys.stdin.readline()
将等待stdin结束(linux/macOS上为Ctrl-D,windows上为Ctrl+Z)
但是不需要readlines()
(事实上,)。默认情况下,通过行在文件对象上进行迭代:
for line in sys.stdin:
print('got line!')
医生们甚至不同意。如果您确实需要列表中的所有行,那么只需执行
list(sys.stdin)
即可。因此,在cmd中编写一些输入命令并按Ctrl-D键后,应该显示输出?如果使用readlines()
(或list(sys.stdin)
)。但是不要那样做!(如果您在windows上)