繁体   English   中英

如何使用Python从文本中提取列?

[英]How do I extract a column from text using Python?

我是python编程的新手。 通过在互联网上搜索python文档来写这个脚本。

有人可以帮我把第二列作为“ps aux”命令的输出(即只有PID列)。

#script to print the processid
import os
import commands
out=commands.getoutput('ps aux') # to get the process listing in out
#print out
#print out[2] #print only second column from out
print out[:2] 

output of "print out" statement
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   5728  1068 ?        Ss   Oct13   0:07 /sbin/init
root         2  0.0  0.0      0     0 ?        S<   Oct13   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S<   Oct13   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S<   Oct13   0:11 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Oct13   0:00 [watchdog/0]
root         6  0.0  0.0      0     0 ?        S<   Oct13   0:00 [migration/1]

提前致谢

使用split()splitlines() (将字符串转换为行列表,将行列表转换为列列表,然后根据需要进行索引):

>>> for line in out.splitlines():
...     fields = line.split()
...     if len(fields) >= 2:
...         print fields[1]


PID
1
2
3
4
5
6

正如评论中所提到的,使用awk非常简单:

ps aux | awk {'print $2'}

但是,这里也是一个使用列表推导的python解决方案,它给出了一个PID列表:

>>> [col.split()[1] for col in out.splitlines()]
['PID', '1', '2', '3', '4', '5', '6']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM