當後台有較多jupyter程序後,手工清理比較費時間,
class
processhandler()
:def
_init_
(self)
: self.kill_id=
##檢視處理程序
defshowprocess
(self)
: self.kill_id=!ps -aux | grep 'jupyter'
| grep 'a'
| awk ''
| grep '月'
return self.kill_id
##自動kill程序
defkillprocess
(self)
:###獲取所有程序號
self.kill_id=!ps -aux | grep 'jupyter'
| grep 'a'
| awk ''
| grep '月'
import datetime
curr_time = datetime.datetime.now(
) today=
int(
str(curr_time.month)
+str
(curr_time.day)
) list_date=
[ c.replace(
'月','')
.split(
' ')
for c in self.kill_id]
for i in
range(0
,len
(list_date)):
if today-
int(list_date[i][1
])>0:
node_input=list_date[i][0
] !kill -
9print
('程序 '
+list_date[i][0
]+' killed'
)else
:print
('無程序需要處理'
)
為了解決傳導引數問題,使用os包中的popen來傳遞指令碼
目前實現功能:
1.showprocess 檢視user程序
2.killhistory 清理user程序(跳過當前程序)
3.killcurrent 清理當前user程序
import os
import datetime
class
processhandler()
:def
_init_
(self)
: self.kill_id=
##檢視處理程序
defshowprocess
(self,user_input)
: pro_input=
"ps -aux | grep jupyter | grep "
.format
(user_input)
+" | awk '' | grep 月"
process = os.popen(pro_input)
output = process.read(
) self.kill_id=output.split(
'\n'
)return self.kill_id
##清理歷史程序
defkillhistory
(self,user_input)
: pro_input=
"ps -aux | grep jupyter | grep "
.format
(user_input)
+" | awk '' | grep 月"
###獲取程序列表
process = os.popen(pro_input)
output = process.read(
) self.kill_id=output.split(
'\n'
)##獲取當前程序,避免誤殺
self.current=os.getpid(
)##得到當前日期
curr_time = datetime.datetime.now(
) today=
int(
str(curr_time.month)
+str
(curr_time.day)
) list_date=
[ c.replace(
'月','')
.split(
' ')
for c in self.kill_id]
for i in
range(0
,len
(list_date)):
is_current=
(list_date[i][0
]==os.getpid())
##跳過當前程序
if is_current or list_date[i][0
]=='':
continue
elif today-
int(list_date[i][1
])>0:
node_input=list_date[i][0
] !kill -
9print
('程序 '
+list_date[i][0
]+' killed'
)else
:print
('無程序需要處理'
)##清理當前程序
defkillcurrent
(self,user_input)
: current=os.getpid(
) !kill -
9print
('程序 '
+current+
' killed'
)
python教學筆記 python學習筆記(一)
1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...
python學習筆記
coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...
Python 學習筆記
python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...