只能接受一行用户的输入,以回车作为输入结束的标志。
如果需要输入多行,则可以使用循环来要求用户多次录入
n = int(input("请输入行数:"))
lst = []
for i in range(n):
s = input("请输入第%d行:" % (i + 1))
lst.append(s)
print(lst)
s = ""
while True:
line = input("请输入一行:")
if line:
s += line + "\n"
else:
break
print(s)
1. 首先,导入sys模块。
2. 然后,使用sys.stdin.readlines()函数,获取用户输入的文本。
这个方法可以一次录入用户输入的多行数据
需要注意的是,使用sys.stdin.readlines()函数时,用户必须在输入完成后按下Ctrl+D键才能结束输入。如果是光标所在行进行Ctrl+D的操作,改行数据不会被读取到,所以要注意输入的最后一行回车后在操作Ctrl_D。
并且,改行还有一个问题,如果后面还有input等需要用户录入的数据,会报错:EOFError: EOF when reading a line,网上的解释是因为执行了Ctri+D但是没有用户录入,我怀疑是Ctrl+D对后面的input造成了影响,但是还没有好的解决方法,期待后面解决吧。
下面是例子:
if __name__ == '__main__': print('show') systemName = input('录入来源系统!') thisPath = input('录入本机保存地址!') print('录入对象清单!以ctrl+d作为结束。') objList = sys.stdin.readlines() # ctrl+d结束输入
for i in objList:#注意行最后欧带着回车符\nprint(i)