gpt4 book ai didi

python - 如何从linux程序逐行将输入管道输入到python?

转载 作者:IT老高 更新时间:2023-10-28 21:34:19 25 4
gpt4 key购买 nike

我想将 ps -ef 的输出逐行传输到 python。

我正在使用的脚本是这个(first.py) -

#! /usr/bin/python

import sys

for line in sys.argv:
print line

不幸的是,“行”被分成了由空格分隔的单词。所以,例如,如果我这样做

echo "days go by and still" | xargs first.py

我得到的输出是

./first.py
days
go
by
and
still

如何编写脚本以使输出为

./first.py
days go by and still

?

最佳答案

我建议不要使用命令行参数,而是从标准输入(stdin)读取。 Python 有一个简单的习惯用法来遍历 stdin 处的行:

import sys

for line in sys.stdin:
sys.stdout.write(line)

我的使用示例(上面的代码保存到iterate-stdin.py):

$ echo -e "first line\nsecond line" | python iterate-stdin.py 
first line
second line

用你的例子:

$ echo "days go by and still" | python iterate-stdin.py
days go by and still

关于python - 如何从linux程序逐行将输入管道输入到python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com