如何在Python中从stdin读取
时间:2020-02-23 14:43:44 来源:igfitidea点击:
在Python中,有三种方法可以从stdin读取数据。
- sys.stdin
- input()内置函数
- fileinput.input()函数
1.使用sys.stdin读取标准输入
解释器将Python sys模块stdin用于标准输入。
在内部,它调用input()函数。
输入字符串的末尾附加换行符(\ n)。
因此,您可以使用rstrip()函数将其删除。
这是一个简单的程序,可以从标准输入中读取用户消息并进行处理。
当用户输入"退出"消息时,程序将终止。
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()删除尾随的换行符,以便我们可以检查用户是否输入了"退出"消息。
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.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")