在 Python 中读取用户输入直到 EOF
Read user Input until EOF in Python
使用该sys.stdin.readlines()
方法读取用户输入直到 EOF。该
readlines()
方法将返回一个包含行的列表。用户可以按
CTRL + D
(Unix) 或CTRL + Z
(Windows) 退出。
主程序
import sys # 👇️ User must press Ctrl + D (Unix) or Ctrl + Z (Windows) to exit print('Press CTRL + D (Unix) or CTRL + Z (Windows) to exit') user_input = sys.stdin.readlines() # 👇️ get list of lines print(user_input) # 👇️ join the list items into a string print(''.join(user_input))
stdin
用于交互式用户输入。
用户必须按
CTRL + D
(在 Unix 上)或CTRL + Z
在 Windows 上退出。该readlines()
方法返回一个列表,其中包含用户输入的列表。
str.join()
如果您需要将字符串列表连接成一个字符串,则可以使用该方法。
主程序
# a # b # c print(''.join(['a\n', 'b\n', 'c\n']))
如果您只需要包含行的字符串,请改用该sys.stdin.read()
方法。
主程序
import sys user_input = sys.stdin.read() print(user_input)
该sys.stdin.read()
方法返回一个字符串,其中包含用户输入的行。
或者,您可以使用try/except
语句。
读取用户输入直到 EOF:
- 使用
while
循环迭代直到 EOF。 - 在每次迭代中,将用户输入附加到列表中。
- 捕获块
EOFError
中的异常except
并跳出循环。
主程序
lines = [] while True: try: lines.append(input()) except EOFError: lines_str = '\n'.join(lines) print(lines_str) break print(lines)
我们使用while
循环迭代直到 EOF。
如果用户按下CTRL + D
(Unix) 或CTRL + Z
(Windows),EOFError
则会引发异常并在except
块中处理。
break
语句跳出最内层的封闭或
for
循环while
。