使用 Python 拆分 ps 的输出

2024-01-23

在 Linux 上,命令 ps aux 输出进程列表,其中每个统计数据包含多个列。例如

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
...
postfix  22611  0.0  0.2  54136  2544 ?        S    15:26   0:00 pickup -l -t fifo -u
apache   22920  0.0  1.5 198340 16588 ?        S    09:58   0:05 /usr/sbin/httpd

我希望能够使用 Python 读取此内容并拆分每一行,然后拆分每一列,以便它们可以用作值。

在大多数情况下,这不是问题:

ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE).communicate()[0]
processes = ps.split('\n')

例如,我现在可以循环遍历进程来获取每一行并按空格将其拆分

sep = re.compile('[\s]+')
for row in processes:
    print sep.split(row)

然而,问题是最后一列,即命令,有时有空格。在上面的示例中,可以在命令中看到这一点

pickup -l -t fifo -u

这将被拆分为

['postfix', '22611', '0.0', '0.2', '54136', '2544', '?', 'S', '15:26', '0:00', 'pickup', '-l', '-t', 'fifo', '-u']

但我真的希望它是:

['postfix', '22611', '0.0', '0.2', '54136', '2544', '?', 'S', '15:26', '0:00', 'pickup -l -t fifo -u']

所以我的问题是,如何拆分列,但当涉及到命令列时,将整个字符串保留为一个列表元素,而不是按空格拆分?


使用第二个参数split它指定将字符串拆分为的最大字段数。我想您可以通过计算第一行中的字段数(即列标题)来找到该数字。

ps = subprocess.Popen(['ps', 'aux'], stdout=subprocess.PIPE).communicate()[0]
processes = ps.split('\n')
# this specifies the number of splits, so the splitted lines
# will have (nfields+1) elements
nfields = len(processes[0].split()) - 1
for row in processes[1:]:
    print row.split(None, nfields)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python 拆分 ps 的输出 的相关文章

  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he
  • Paste.httpserver 并通过 HTTP/1.1 Keep-alive 减慢速度;使用 httperf 和 ab 进行测试

    我有一个基于paste httpserver 的Web 服务器作为HTTP 和WSGI 之间的适配器 当我使用 httperf 进行性能测量时 如果每次使用 num conn 启动一个新请求 我每秒可以执行超过 1 000 个请求 如果我使
  • python中basestring和types.StringType之间的区别?

    有什么区别 isinstance foo types StringType and isinstance foo basestring 对于Python2 basestring是两者的基类str and unicode while type
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • 为什么 __dict__ 和 __weakref__ 类从未在 Python 中重新定义?

    类创建似乎从来没有re 定义 dict and weakref class属性 即 如果它们已经存在于超类的字典中 则它们不会添加到其子类的字典中 但始终re 定义 doc and module class属性 为什么 gt gt gt c
  • 如何指示 urwid 列表框的项目数多于当前显示的项目数?

    有没有办法向用户显示 urwid 列表框在显示部分上方 下方有其他项目 我正在考虑类似滚动条的东西 它可以显示条目的数量 或者列表框顶部 底部的单独栏 如果这个行为无法实现 有哪些方法可以实现这个通知 在我的研究过程中 我发现这个问题 ht
  • 检测是否从psycopg2游标获取?

    假设我执行以下命令 insert into hello username values me 我跑起来就像 cursor fetchall 我收到以下错误 psycopg2 ProgrammingError no results to fe
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed
  • 如何使用 python 定位和读取 Data Matrix 代码

    我正在尝试读取微管底部的数据矩阵条形码 我试过libdmtx http libdmtx sourceforge net 它有 python 绑定 当矩阵的点是方形时工作得相当好 但当矩阵的点是圆形时工作得更糟 如下所示 另一个复杂问题是在某
  • python从二进制文件中读取16字节长的双精度值

    我找到了蟒蛇struct unpack 读取其他程序生成的二进制数据非常方便 问题 如何阅读16 字节长双精度数出二进制文件 以下 C 代码将 1 01 写入二进制文件三次 分别使用 4 字节浮点型 8 字节双精度型和 16 字节长双精度型
  • 定义在文本小部件中双击时选择哪些字符

    在 Windows 上 双击文本小部件中的单词也将选择连接的标点符号 有什么方法可以定义您想要选择的角色吗 tcl wordchars该变量的值是一个正则表达式 可以设置它来控制什么被视为 单词 字符 例如 通过双击 Tk 中的文本来选择单

随机推荐

  • 动态更新 AutoCompleteTextView 适配器

    我想通过从 RESTful Web 服务获取列表来定期更改 AutoCompleteTextview 给出的建议 但无法使其顺利工作 我设置了一个硬编码的建议列表以确保它有效 ArrayAdapter
  • 如何使用 EmbeddedNavigator 在 DevExpress GridView 中保存行更改

    我正在使用嵌入式导航器的添加 编辑和删除按钮 我已经订阅了gridControl1 EmbeddedNavigator ButtonClick事件 然后我检查单击了哪个按钮 问题是 当我编辑单元格并按保存更改时 EndEdit 我没有看到新
  • 如何在Wordnet中找到“词法文件”?

    如果你看一下并选择 显示选项 显示词汇文件信息 您将看到一个非常有用的单词分类 称为词汇文件 例如 对于 填充 我们有
  • 使用 Office Open XML 重复内容

    我一直在研究 Office Open XML 文档规范的可能性 我对能够将自定义 XML 内容添加到文档并将其绑定到内容控件特别感兴趣 我想知道是否可以有重复的内容控制类型 例如 假设我的 docx 文件中有一些自定义 XML 如下所示
  • 为什么使用 AsQueryable() 而不是 List()?

    我正在使用存储库模式进行数据访问实体框架 http en wikipedia org wiki ADO NET Entity Framework and LINQ http en wikipedia org wiki Language In
  • Z3 Optimize 最大和最小功能背后的理论是什么?

    我写这封信是为了询问 Z3 Optimize 功能背后的理论 算法 特别是它的maximum and minimum功能 这对我来说似乎很神奇 它是某种二分搜索吗 它如何有效地计算出这里的最大 最小值 我试图搜索相关功能的源代码 例如 ex
  • context-param可以在web.xml中引用吗?

    我可以在 DD 本身中引用上下文参数吗 例如
  • ReactiveList 和 WhenAny

    我有许多检查清单ReactiveLists具有ChangeTrackingEnabled true 我只想在每个列表中至少选中一项时启用 OkCommand 此外 我想确保用有效的字节值填充其他各种属性 我尝试执行以下操作 但它不起作用 t
  • 如何修改 Azure Functions 中本机注入的 IConfiguration

    我们需要add本地提供给 Azure Functions 的本机 IConfiguration 的配置提供程序 目前我们完全替换使用以下代码将其与我们的自定义 Iconfiguration 结合使用 public class Startup
  • OWIN app.use vs app.run vs app.map

    它们之间有什么区别app use app run app map in Owin http www asp net aspnet overview owin and katana 什么时候用什么 阅读文档时并不简单 app use将一个中间
  • 具有有限身份验证的附加组件无法打开侧边栏

    我有一个 Google 文档插件 它被编程为在文档打开时立即打开侧边栏 当然 这需要在文档中安装并启用该附加组件 我发现 一周以来 在我们的用例中非常有用的侧边栏自动打开功能不再起作用 在 StackDriver 日志中我看到此报告 onO
  • 在 MKMapView 上使用叠加层进行缩放时出现异常: NSInvalidArgumentException NSSetM removeObject:对象不能为 nil

    我添加了大约1000MKPolygon到一个MKMapView 将叠加层添加到MKMapView效果很好 但是 如果我快速放大和缩小 偶尔放开变焦 这样mapView处理它是新的visibleMapRect 我发现应用程序 有时 崩溃并出现
  • VIM 从 :shell 命令中打开文件

    假设我从 with VI 发出 shell 命令 然后我导航到一个目录并决定需要编辑我在那里看到的 foo txt 文件 有没有办法从 shell 返回 vi 并打开 foo txt 进行编辑 只要满足以下条件 就有办法实现你想要的 Vim
  • 压缩存档错误:无法访问该文件,因为该文件正在被另一个进程使用

    我想压缩一个路径 其中运行一个服务窗口 当服务停止时 它工作正常 当服务运行时 我有例外 该进程无法访问该文件 因为该文件正在被另一个进程使用 过程 但是 当我使用 7 zip 压缩时 没有任何异常 我的命令 Compress Archiv
  • 在两列之间的范围内搜索特定值python dataframe

    我有两个 csv 文件 根据 csv 文件 1 中单元格的值 我应该能够在 csv 文件 2 的列中搜索该值 并从 csv 文件 2 中的其他列获取相应的值 如果这很令人困惑 我很抱歉 通过插图可能会变得清楚 CSV 文件 1 Car Mi
  • 正则表达式仅允许字母和某些字符

    我正在尝试创建一个仅允许大写或小写字母以及空格字符 和 的正则表达式 这是我到目前为止所拥有的 但由于某种原因它仍然让我输入数字 a zA Z 任何帮助都会很棒 谢谢 在角色类别中很特殊 它用于定义一个范围 就像您所做的那样a z 匹配文字
  • 获取对从 AsyncTask 调用 Activity 的引用(不是作为内部类)

    是否有可能从不是调用 Activity 类的内部类的 AsyncTask 中获取对启动 AsyncTask 执行的 Activity 实例的引用 我知道这个线程 https stackoverflow com questions 23792
  • 如何使用模板专门化来查找成员函数参数类型等?

    我确信我以前见过这种描述 但现在我一辈子都找不到它 给定一个具有某种形式的成员函数的类 例如 int Foo Bar char double 如何使用模板和各种专业化来推断组成类型 例如 template
  • HttpContext 为空?

    是否可以这样说 当 Httpcontext 对象为 null 时 iis 就关闭了 我知道当第一个请求iis asp net 时应用程序管理器创建 环境 应用程序域 其中有应用程序运行时 里面有块 如果服务器上有超过 1 个应用程序 每个
  • 使用 Python 拆分 ps 的输出

    在 Linux 上 命令 ps aux 输出进程列表 其中每个统计数据包含多个列 例如 USER PID CPU MEM VSZ RSS TTY STAT START TIME COMMAND postfix 22611 0 0 0 2 5