如何在Python中从标准输入读取数据
在Python中,从标准输入中读取数据有三种方法。
- sys.stdin
标准输入流
input() built-in function
内建函数 input()
fileinput.input() function
fileinput模块的input()函数
使用sys.stdin从标准输入读取
Python的sys模块中的stdin被解释器用于标准输入。在内部,它调用input()函数。输入字符串在末尾附加了一个换行符(\n)。因此,你可以使用rstrip()函数将其删除。下面是一个从标准输入读取用户消息并进行处理的简单程序。当用户输入“Exit”消息时,程序将终止。
import sys
for line in sys.stdin:
if 'Exit' == line.rstrip():
break
print(f'Processing Message from sys.stdin *****{line}*****')
print("Done")
输出:
Hi
Processing Message from sys.stdin *****Hi
*****
Hello
Processing Message from sys.stdin *****Hello
*****
Exit
Done
注意使用rstrip()函数来移除末尾的换行符,以便我们可以检查用户是否输入了“Exit”消息。
2. 使用 input() 函数来读取标准输入数据
我们还可以使用Python的input()函数读取标准输入数据。我们还可以向用户提示消息。以下是一个简单的例子,用于在无限循环中读取和处理标准输入消息,直到用户输入退出消息为止。
while True:
data = input("Please enter the message:\n")
if 'Exit' == data:
break
print(f'Processing Message from input() *****{data}*****')
print("Done")
输出:以本地汉语进行解释
input()函数不会在用户消息后追加换行符。
3. 使用fileinput模块读取标准输入
我们还可以使用fileinput.input()函数从标准输入中读取。fileinput模块提供了用于循环遍历标准输入或文件列表的实用函数。当我们不给input()函数提供任何参数时,它会从标准输入中读取参数。这个函数的工作方式和sys.stdin相同,并在用户输入数据的末尾添加一个换行符。
import fileinput
for fileinput_line in fileinput.input():
if 'Exit' == fileinput_line.rstrip():
break
print(f'Processing Message from fileinput.input() *****{fileinput_line}*****')
print("Done")
输出结果: