如何在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
Python Stdin Example

注意使用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")

输出:以本地汉语进行解释

Python Input Read From Stdin

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")

输出结果:

Python Fileinput Read Standard Input
发表回复 0

Your email address will not be published. Required fields are marked *