在上一篇文章中,我們講了如何在linux上用python寫一個(gè)守護(hù)進(jìn)程。主要原理是利用linux的fork函數(shù)來創(chuàng)建一個(gè)進(jìn)程,然后退出父進(jìn)程運(yùn)行,生成的子進(jìn)程就會(huì)成為一個(gè)守護(hù)進(jìn)程。細(xì)心觀察的可能會(huì)發(fā)現(xiàn),這個(gè)守護(hù)進(jìn)程的運(yùn)行身份是執(zhí)行這個(gè)程序的用戶,如果把這個(gè)守護(hù)程序加入到系統(tǒng)的服務(wù)項(xiàng),那么這個(gè)守護(hù)程序的執(zhí)行身份應(yīng)該是root。一個(gè)情況出現(xiàn)了,root的權(quán)限比較大,如果通過這個(gè)root身份的守護(hù)程序來進(jìn)行操作,危險(xiǎn)性是比較大的。一種好的辦法是生成一個(gè)身份為ro
系統(tǒng) 2019-09-27 17:52:32 1629
Python中使用SSH需要用到OpenSSH,而OpenSSH依賴于paramiko模塊,而paramiko模塊又依賴于pycrypto模塊,因此要在Python中使用SSH,則需要先安裝模塊順序是:pycrypto->ecdsa->paramiko1、安裝pyCrypto安裝這個(gè)比較麻煩,需要本地編譯,要裝vs或gcc還有一堆配置,還不一定能編譯成功。(網(wǎng)上能搜到安裝步驟)建議直接下載已編譯版:http://www.voidspace.org.uk/p
系統(tǒng) 2019-09-27 17:52:27 1629
yield的功能類似于return,但是不同之處在于它返回的是生成器。生成器生成器是通過一個(gè)或多個(gè)yield表達(dá)式構(gòu)成的函數(shù),每一個(gè)生成器都是一個(gè)迭代器(但是迭代器不一定是生成器)。如果一個(gè)函數(shù)包含yield關(guān)鍵字,這個(gè)函數(shù)就會(huì)變?yōu)橐粋€(gè)生成器。生成器并不會(huì)一次返回所有結(jié)果,而是每次遇到y(tǒng)ield關(guān)鍵字后返回相應(yīng)結(jié)果,并保留函數(shù)當(dāng)前的運(yùn)行狀態(tài),等待下一次的調(diào)用。由于生成器也是一個(gè)迭代器,那么它就應(yīng)該支持next方法來獲取下一個(gè)值。基本操作#通過`yield`
系統(tǒng) 2019-09-27 17:52:18 1629
數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)基礎(chǔ)的必修內(nèi)容,也是很多大型互聯(lián)網(wǎng)企業(yè)面試的必考題。可想而知,它在計(jì)算機(jī)領(lǐng)域的重要性。然而很多計(jì)算機(jī)專業(yè)的同學(xué),都僅僅是了解數(shù)據(jù)結(jié)構(gòu)的相關(guān)理論,卻無法用代碼實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)。今日整理了一份常見數(shù)據(jù)結(jié)構(gòu)的Python實(shí)現(xiàn),希望大家能夠參考代碼,親自動(dòng)手通過代碼實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu),以鞏固知識(shí)加深理解。以下內(nèi)容整理于《Python實(shí)現(xiàn)各種常用算法》棧classStack(object):def__init__(self,limit=10):sel
系統(tǒng) 2019-09-27 17:52:13 1629
看python社區(qū)大媽組織的內(nèi)容里邊有一篇講python內(nèi)存優(yōu)化的,用到了__slots__。然后查了一下,總結(jié)一下。感覺非常有用python類在進(jìn)行實(shí)例化的時(shí)候,會(huì)有一個(gè)__dict__屬性,里邊有可用的實(shí)例屬性名和值。聲明__slots__后,實(shí)例就只會(huì)含有__slots__里有的屬性名。#coding:utf-8classA(object):x=1def__init__(self):self.y=2a=A()printa.__dict__print(
系統(tǒng) 2019-09-27 17:52:11 1629
基本常識(shí)python中的左位移和右位移利用Python在一個(gè)文件的頭部插入數(shù)據(jù)withopen(path,"r+")asf:old=f.read()f.seek(0)f.write(data)f.write(old)Debugxpath中遇到[]AttributeError:‘dict’objecthasnoattribute‘iteritems’Python3.5中:iteritems變?yōu)閕tems【Python】ufunc‘subtract’didno
系統(tǒng) 2019-09-27 17:52:10 1629
這篇文章主要介紹了python爬蟲批量下載zabbix文檔代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下#-*-coding:UTF-8-*-importrequests,re,timeurl='https://www.zabbix.com/documentation/3.4/zh/manual'base_url='https://www.zabbix.com/documentation/3.4/
系統(tǒng) 2019-09-27 17:52:06 1629
程序說明:本程序?qū)崿F(xiàn)將開發(fā)程序服務(wù)器中的打包文件通過該腳本上傳到正式生產(chǎn)環(huán)境(注:生產(chǎn)環(huán)境和開發(fā)環(huán)境不互通)程序基本思路:將開發(fā)環(huán)境中的程序包拷貝到本地堡壘機(jī)將程序包進(jìn)行解壓獲得解壓后的文件通同步到生產(chǎn)服務(wù)器上主要知識(shí)點(diǎn):python庫os.system()的基本使用利用python調(diào)用xshell命令程序使用方法:pythonaddline.py開發(fā)主機(jī)ip程序包目標(biāo)主機(jī)ip上傳目錄上傳編號(hào)如:pythonaddline.py240/home/shaoj
系統(tǒng) 2019-09-27 17:52:05 1629
最近學(xué)習(xí)《Python參考手冊》學(xué)到Class部分,遇到了類的構(gòu)造析構(gòu)部分的問題:1、什么時(shí)候構(gòu)造?2、什么時(shí)候析構(gòu)?3、成員變量如何處理?4、Python中的共享成員函數(shù)如何訪問?------------------------探索過程:1、經(jīng)過查找,Python中沒有專用的構(gòu)造和析構(gòu)函數(shù),但是一般可以在__init__和__del__分別完成初始化和刪除操作,可用這個(gè)替代構(gòu)造和析構(gòu)。還有一個(gè)__new__用來定制類的創(chuàng)建過程,不過需要一定的配置,此處不
系統(tǒng) 2019-09-27 17:51:55 1629
Python實(shí)現(xiàn)Mysql數(shù)據(jù)統(tǒng)計(jì)的實(shí)例代碼如下所示:importpymysqlimportxlwtexcel=xlwt.Workbook(encoding='utf-8')sheet=excel.add_sheet('Mysql數(shù)據(jù)庫')sheet.write(0,0,'庫名')sheet.write(0,1,'表名')sheet.write(0,2,'數(shù)據(jù)條數(shù)')db=pymysql.connect('192.168.1.74','root','123
系統(tǒng) 2019-09-27 17:51:52 1629