Python中sys.stdin和fileinput读取标准输入

本文介绍了Python中如何使用sys.stdin和fileinput读取标准输入,详细解析了这两个工具在处理命令行输入和多文件操作时的应用,展示了它们在结合Python与Shell脚本能力上的优势。
摘要由CSDN通过智能技术生成

源自《Python Linux系统管理与自动化运维》第3章打造命令行工具。

1. 使用sys.stdin和fileinput读取标准输入

众所周知,Shell脚本具有一个其他脚本语言都没有的优点,那就是管道。管道可以衔接不同的Linux命令,通过管道,我们可以使用多个简单的命令来实现一个复杂的功能。管道如此强大,因此,我们希望在Python语言中使用管道来结合Python语言和Shell脚本的优势。

在Python标准库的sys库中,有三个文件描述符,分别是stdin、stdout和stderr,这三个文件描述符分别代表标准输入、标准输出和错误输出。我们不需要调用open函数打开这几个文件就可以直接使用。例如,我们有一个名为read_stdin.py的文件,该文件仅仅是从标准输入中读取内容,然后打印到命令行终端。文件内容如下:

from __future__ import print_function  
import sys  
 
for line in sys.stdin:  
    print(line, end="") 

接下来,我们就可以像Shell脚本一样,通过标准输入给该程序输入内容。如下所示:

cat /etc/passwd | python read_stdin.py  
python read_stdin.py < /etc/passwd  
python read_stdin.py - 

sys.stdin是一个普通文件对象,除了从标准输入读取内容以外,并没有特殊之处。我们也可以使用sys.stdin调用文件对象的方法。如调用read函数读取标准输入中的所有内容,调用readlines函数将标准输入的内容读取到一个列表中。如下所示:

from __future__ import print_function  
import sys  
 
def get_content():  
    return sys.stdin.rea
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值