Python如何获取Linux管道输出

 时间:2024-10-11 21:47:53

Linux有个方便的获取管道输出的方式,例如 ls | grep a 就把ls的输出结果放到grep中处理,寻找含有字母a的项。Python的脚本怎么样才能获得类似的效果?请接着看。

工具/原料

Linux平台

基本知识

1、你需要使用sys.stdin.read来获取管道的输入。看下图的代码。之所以没有写出文本,是希望读者能自己写一遍,而不是复制粘贴。自己动手写一遍必看10遍还更容易记住。

Python如何获取Linux管道输出

实战演练

1、假如你想要一个脚本来给输出的行数计数,怎么写?例如: ls | count就把ls的个数显示出来,你就知道有多少个文件或文件夹了。

2、代码如下图:主要看第6、7行:bi = sys.stdin.buffer.read()由于考虑到文件名的编码可能不是utf-8,所以直接read可能出现乱码(准确地说,不是乱码,而是UnicodeDecodeError,程序根本运行不下去),所以使用了buffer,它的含义是以字节形式读取输出,而不是字符。li = bi.split(b"\n")[:-1]以b“\n”为分隔符分了之后,最后一项的空字节,所以要切掉最后一项。不要担心没有分成几行的ls的输出,经过测试,即使输出是一行,它们之间也是用b"\n"分割的。

Python如何获取Linux管道输出
  • PC上运行安卓虚拟机常见问题解决
  • CDP的介绍及使用
  • SQL数据库执行误操作delete语句对数据库的影响
  • C++11中如何查询chrono时间函数的精度和稳定性
  • 如何对1亿个数字去重
  • 热门搜索
    cdr用什么软件打开 路不拾遗是什么意思 妮子是什么意思 木地板用什么拖把好 映照的意思 颈椎病睡什么枕头好 山头火命是什么意思 谦虚的意思 息息相关的意思 不可救药的意思