python工作學習(psutil庫使用)

2021-10-12 06:00:23 字數 3342 閱讀 8541

pids = psutil.process_iter()迭代時由於許可權問題可能出現無法獲取到程序資訊的情況,導致迭代失敗,需要通過管理員許可權執行py指令碼才可以順利獲取。**如下:

#!

/usr/bin/python #-*

- encoding:utf-8-

*-import os

import sys

import string

import psutil

import time

import collections

import argparse

# 使用psutil來判斷

import psutil

def proc_exist

(process_name)

: pl = psutil.

pids()

for pid in pl:

if psutil.

process

(pid)

.name()

== process_name:

return pid

def get_pid

(name)

:'''

作用:根據程序名獲取程序pid

'''pids = psutil.

process_iter()

print

("["

+ name +

"]'s pid is:"

) vspid =

0for pid in pids:

if(pid.

name()

== name)

:print

(pid.pid)

vspid = pid.pid

p = psutil.

process

(vspid)

# monitor process and write data to file

interval =

3 # polling seconds

with open

("process_monitor_"

+ p.

name()

+'_'

+str

(vspid)

+".csv"

,"a+"

) as f:

f.write

("time,cpu,mem_percent,cpu_time,,,,ctx_num,,thread_num,read_count,write_count,,,,,net,,,,,,,,disk_io,memory_info,,disk_percent\n"

)while

(proc_exist

(name)):

current_time = time.

strftime

('%h:%m:%s'

,time.

localtime

(time.

time()

))cpu_percent = p.

cpu_percent()

mem_percent = p.

memory_percent()

cpu_time = p.

cpu_times()

ctx_num =p.

num_ctx_switches()

thread_num = p.

num_threads()

#memory_info = p.memory_info()

io_counters = p.

io_counters()

net = psutil.

net_io_counters()

disk = psutil.

disk_usage

('/'

)#disk_io = psutil.disk_io_counters()

line = current_time +

','+

str(cpu_percent)

+','

+str

(mem_percent)

+','

+str

(cpu_time)

+','

+str

(ctx_num)

+','

+str

(thread_num)

+','

+str

(io_counters)

+','

+str

(net)

+','

+str

(disk)

print (line)

f.write

(line +

"\n"

) time.

sleep

(interval)

csvfile.

close

()

def main

(ar**)

:get_pid

( sys.ar**[1]

)if __name__ ==

"__main__"

:main

(sys.ar**[1]

)

普通許可權執行時可能會出現:

出現oserror:[winerror 0]錯誤提示

使用批處理獲取管理員許可權開啟cmd然後執行py指令碼:

%1 mshta vbscript:createobject(

).shellexecute(

"cmd.exe","/c %~s0 ::","","runas",1)

(window.close)

&&exit

注意:此時路徑在cmd所在的根路徑,執行py指令碼時注意路徑問題,否則會報找不到該檔案。**如下:

%1 mshta vbscript:createobject(

).shellexecute(

"cmd.exe","/c %~s0 ::","","runas",1)

(window.close)

&&exit

cd /d e:\path\

tasklist|

find /i "a.exe"

if %errorlevel%==0 (

start t.py a.exe

)

至此,解決了許可權問題可以保證py指令碼在windows系統上以管理員許可權執行。

學習python可以從事什麼工作

對於python這門語言,很多人都是比較熟悉的,卻又不太了解的,很多人都會問為什麼要學習python?即便是學會python可以幹什麼?說起python就業,很多人都會想到python領域,其實python爬蟲算是其中比較簡單的,通過python抓取網頁上的內容而已。一般學習會python可以往很多...

python 工作 python工作中總結

以下方法平時很少用,用其它解決方法,只是總結了一些其它同事的技巧 1 如何自動生成列表,加乙個條件還能篩選 x for x in range 10 if x 5 來生乙個字典試試 d randint需要匯入包 from random import randint 用迭代篩選字典方法 iteritem...

Python 我工作學習中的好幫手

最近在工作中,我需要在solaris上寫很多測試或者輔助工作的指令碼。因為單位只推薦使用perl或者python,所以我不能選擇我最喜歡的ruby,當然我不會去選擇perl 不是說perl不好,只是我不喜歡perl 其實python我也有不喜歡的地方,譬如那種ugly的縮排,還有混雜著len lis...