前言
想把python替代shell脚本,避免不了的问题是,在命令行中结合python脚本使用重定向,管道作为输入.
方案
python内置fileinput模块可以解决这个问题,如下脚本:1
2
3
4
5
6#!/usr/bin/env python3
import fileinput
with fileinput.input() as f_input:
for line in f_input:
print(line, end='')
运行结果如下:1
2
3
4
5zp@zpeng:~/PycharmProjects/script$ ls ~ | python3 filein.py
app Desktop Documents Downloads hexo_zp_next mnt Music node_modules npm-debug.log Pictures Public PycharmProjects software Templates tmp Videos vmware 流量牵引.docx
zp@zpeng:~/PycharmProjects/script$ python3 filein.py < filein.py
#!/usr/bin/env python3 import fileinput with fileinput.input() as f_input: for line in f_input: print(line.strip(), end=' ') print()
zp@zpeng:~/PycharmProjects/script$
可见这样可以将python脚本当做shell脚本来用.