在上一篇文章中,我們講了如何在linux上用python寫一個守護進程。主要原理是利用linux的fork函數來創建一個進程,然后退出父進程運行,生成的子進程就會成為一個守護進程。細心觀察的可能會發現,這個守護進程的運行身份是執行這個程序的用戶,如果把這個守護程序加入到系統的服務項,那么這個守護程序的執行身份應該是root。一個情況出現了,root的權限比較大,如果通過這個root身份的守護程序來進行操作,危險性是比較大的。一種好的辦法是生成一個身份為ro
系統 2019-09-27 17:52:32 1693
今天模擬定義map函數.寫著寫著就發現Python可變長度參數的機制真是靈活而強大.假設有一個元組t,包含n個成員:t=(arg1,...,argn)而一個函數f恰好能接受n個參數:f(arg1,...,argn)f(t)這種做法顯然是錯的,那么如何把t的各成員作為獨立的參數傳給f,以便達到f(arg1,...,argn)的效果?我一開始想到的是很原始的解法,先把t的各個成員變為字符串的形式,再用英文逗號把它們串聯起來,形成一個"標準參數字符串":str_
系統 2019-09-27 17:52:29 1693
Python中使用SSH需要用到OpenSSH,而OpenSSH依賴于paramiko模塊,而paramiko模塊又依賴于pycrypto模塊,因此要在Python中使用SSH,則需要先安裝模塊順序是:pycrypto->ecdsa->paramiko1、安裝pyCrypto安裝這個比較麻煩,需要本地編譯,要裝vs或gcc還有一堆配置,還不一定能編譯成功。(網上能搜到安裝步驟)建議直接下載已編譯版:http://www.voidspace.org.uk/p
系統 2019-09-27 17:52:27 1693
建造者模式,也是一種創建新對象的設計方法,和C++中的虛函數很類似,但是用到了python自身的虛基類ABCMeta。1.應用場景:某個類中的函數較多,且實現比較復雜,很多時候需要繼承的子類重載或者重新定義邏輯;2.背景基礎:由于用到python中虛函數,需要了解abc模塊中的ABCMeta和python中類創建對象時的__metaclass__屬性含義。一般地,在某個類中如果定義__metaclass__=something時,簡單地說是,創建對象時,會
系統 2019-09-27 17:52:24 1693
安裝pydensecrf時報錯:(venv)dorothy@dorothy-MS-7A94:~/project/venv/bin$pipinstallpydensecrfCollectingpydensecrfUsingcachedhttps://files.pythonhosted.org/packages/31/5a/1c2ab48e8019d282c128bc5c621332267bb954d32eecdda3ba57306b1551/pydense
系統 2019-09-27 17:52:21 1693
yield的功能類似于return,但是不同之處在于它返回的是生成器。生成器生成器是通過一個或多個yield表達式構成的函數,每一個生成器都是一個迭代器(但是迭代器不一定是生成器)。如果一個函數包含yield關鍵字,這個函數就會變為一個生成器。生成器并不會一次返回所有結果,而是每次遇到yield關鍵字后返回相應結果,并保留函數當前的運行狀態,等待下一次的調用。由于生成器也是一個迭代器,那么它就應該支持next方法來獲取下一個值。基本操作#通過`yield`
系統 2019-09-27 17:52:18 1693
原文鏈接:https://www.runoob.com/w3cnote/python-func-decorators.html學習菜鳥教程上一個同學的筆記,寫的很好理解。轉來學習。原文鏈接:https://www.runoob.com/w3cnote/python-func-decorators.html開始之前先提醒一下:多個裝飾器的調用順序為:從下往上每個人都有的內褲主要功能是用來遮羞,但是到了冬天它沒法為我們防風御寒,咋辦?我們想到的一個辦法就是把內
系統 2019-09-27 17:52:15 1693
Python的字符串的特點Python與C語言,Java語言都不一樣,沒有單個字符,只有一個有一個字符的字符串。字符串對象不可修改,屬于不可變類型字符串和列表,元組都從屬于序列這個對象類別。所以序列支持的操作,字符串也支持。用單引號和雙引號表示都行,并列的字符串串常量會自動合并,不需要顯式的用加號表示。單雙引號里面的特殊字符必須用轉義序列表示,比如”,',\都需要在前面加個、,但是在三引號里面不需要轉義。Python的字符串的支持的基本操作支持序列的操作,
系統 2019-09-27 17:52:13 1693
我們首先來看下python的全部代碼,大家可以直接復制后測試:#-*-encoding:utf-8-*-importloggingimportwmiimportosimporttimefromConfigParserimportConfigParserimportsmtplibfromemail.mime.textimportMIMETextimportsocketfromdatetimeimportdatetimeimportreimportsysimp
系統 2019-09-27 17:52:12 1693
print("我想打印一個字符串%s"%123)print("我想打印一個字符串",123)print("我想打印一個字符串{}".format(123))這三個輸出有什么區別喃?Python中一個數據是否可以迭代(能否使用For)isinstance(需要判斷的數據,Iterable)查看返回值,true則可以迭代,false不能迭代。如果創建一個可以迭代的對象?必須實現__iter__()方法在__iter__方法中需要返回一個具有__iter__方法
系統 2019-09-27 17:52:09 1693