Python教程:os.popen(cmd).read()檢視後臺程序並殺程序

嗨学编程發表於2024-07-04

一、os.popen()方法

1.使用語法

os.popen() 方法用於從一個命令開啟一個管道。

os.popen(cmd).read() 獲取執行後結果。

os.popen(command[, mode[, bufsize]])
# 使用的命令
# 模式許可權:預設'r'或者'w'
# 檔案需要的緩衝大小 0無緩衝 1行緩衝 其他數值以位元組為單位 負值使用系統預設值

返回一個檔案描述符號的檔案物件。

2.例項

import os
val = os.popen('ls -l /data')
print(val)
# <open file 'ls -l /data', mode 'r' at 0x7f66e8038c00>

val2 = val.read()
print(val2)
# 實際顯示內容

二、檢視後臺程序

top 命令用於實時顯示程序動態。

top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

引數說明:

  • d : 改變顯示的更新速度,或是在交談式指令列( interactive command)按 s
  • q : 沒有任何延遲的顯示速度,如果使用者是有 superuser 的許可權,則 top 將會以最高的優先序執行
  • c : 切換顯示模式,共有兩種模式,一是隻顯示執行檔的名稱,另一種是顯示完整的路徑與名稱
  • S : 累積模式,會將己完成或消失的子程序 ( dead child process ) 的 CPU time 累積起來
  • s : 安全模式,將交談式指令取消, 避免潛在的危機
  • i : 不顯示任何閒置 (idle) 或無用 (zombie) 的程序
  • n : 更新的次數,完成後將會退出 top
  • b : 批次檔模式,搭配 "n" 引數一起使用,可以用來將 top 的結果輸出到檔案內
  • u:指定使用者
# -*- coding: GBK -*-
import pandas as pd
import os

# 查詢後臺使用情況
valo = os.popen('top -b -n 1').read() 
# -n 1 指定更新一次 
# -b 輸出到檔案

# 查詢指定使用者
valo = os.popen('top -b -u user_name -n 1').read()
print(valo)

三、殺程序

# 查詢之後殺程序
valo = os.popen('kill -9 75560').read()

四、統計檔案個數、行數

# 統計行數
valo = os.popen('cat /data/datamining/zone_test/tb_syb_mx_kdxy_list.txt | wc -l').read()
#學習中遇到問題沒人解答?小編建立了一個Python學習交流群:725638078
# 列出檔案 類似於 os.listdir()
val = os.popen('ls -l /data/datamining/zone_test/')

相關文章