有三种方法可以读取 Python 中的 stdin 数据。
- sys.stdin
- input() 内置函数
- fileinput.input() 函数
1. 使用 sys.stdin 从标准输入读取
Python sys 模块 stdin 由解释器用于标准输入。内部,它呼叫 input() 函数。输入字符串附有新线字符(\n)在末尾。因此,您可以使用 rstrip() 函数来删除它。
1import sys
2
3for line in sys.stdin:
4 if 'Exit' == line.rstrip():
5 break
6 print(f'Processing Message from sys.stdin *****{line}*****')
7print("Done")
输出:
1Hi
2Processing Message from sys.stdin *****Hi
3*****
4Hello
5Processing Message from sys.stdin *****Hello
6*****
7Exit
8Done
注意使用 rstrip() 删除后续新线字符,以便我们可以检查用户是否输入了退出
消息。
使用 input() 函数读取 stdin 数据
我们还可以使用 Python input() 函数来读取标准输入数据. 我们也可以向用户发送消息。
1while True:
2 data = input("Please enter the message:\n")
3 if 'Exit' == data:
4 break
5 print(f'Processing Message from input() *****{data}*****')
6
7print("Done")
输出:
input() 函数不会将 newline 字符附加到用户消息中。
使用fileinput模块阅读标准输入
我们还可以使用 fileinput.input()
函数从标准输入中读取。 文件输入模块提供了工具函数,可在标准输入或文件列表上循环。 当我们不向 input() 函数提供任何参数时,它会从标准输入中读取参数。
1import fileinput
2
3for fileinput_line in fileinput.input():
4 if 'Exit' == fileinput_line.rstrip():
5 break
6 print(f'Processing Message from fileinput.input() *****{fileinput_line}*****')
7
8print("Done")
输出: