一、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/')