如何使用Python操作Linux命令输出

unguejic  于 2023-08-03  发布在  Linux
关注(0)|答案(1)|浏览(137)

我真的很难理解如何使用Python最好地操作Linux命令输出,并将感谢任何帮助或指针。
以下命令按名称返回CUPS服务器上安装的所有打印机的列表:

lpstat -v | awk '{print $3}' | sed 's/://g'
PRINTER1
PRINTER2
PRINTER5
PRINTER10
...

字符串
但是我不知道使用Python实现这一点的最佳方法。
我可以从lpstat命令中获得完整的输出,并将其存储在一个变量中:

installed_printers = subprocess.check_output(["lpstat", "-v"]).decode('utf-8')


但是,我真的不知道最好的方法来获得,说,只是在第三列的打印机名称?或者我想做的另一件事是得到一个列表的打印机名称沿着只是IP,然后把它放在一个dataframe。从命令行中,我可以得到:

# lpstat -v | awk '{sub(":", "", $3) sub("ipp://", "", $4) sub("/ipp/print", "", $4); print $3 ", "  $4}'


任何帮助实现这一点与python将不胜感激。

7xllpg7q

7xllpg7q1#

试试这样的

import sys

list_of_lists = []

for line in sys.stdin:
    new_list = [elem for elem in line.split()]
    list_of_lists.append(new_list)

print(list_of_lists)

字符串
如果你的行中有空格,就在那里进行分割。注意,输出看起来像这样

[['PRINTER1'], ['PRINTER2'], ['PRINTER3']]


要使用它,只需按如下方式通过管道传输命令的输出

lpstat -v | awk '{print $3}' | sed 's/://g' | python script.py

相关问题