作者:HelloGitHub-ProdesireHelloGitHub的《講解開源項目》系列,項目地址:https://github.com/HelloGitHub-Team/Article前言在前面三篇介紹argparse的文章中,我們全面了解了argparse的能力,相信不少小伙伴們都已經摩拳擦掌,想要打造一個屬于自己的命令行工具。本文將以我們日常工作中最常見的git命令為例,講解如何使用argparse庫來實現一個真正可用的命令行程序。本系列文章默認
系統 2019-09-27 17:52:36 1757
1.鎖:Lock(1次放1個)同步鎖線程安全,多線程操作時,內部會讓所有線程排隊處理。如:list/dict/Queue線程不安全+人=>排隊處理。需求:a.創建100個線程,在列表中追加8b.創建100個線程v=[]鎖-把自己的添加到列表中。-在讀取列表的最后一個。解鎖以后鎖一個代碼塊:importthreadingimporttimev=[]lock=threading.Lock()deffunc(arg):lock.acquire()#鎖的區域---
系統 2019-09-27 17:52:33 1757
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 1757
掃描服務器ip開放端口,用線程池ThreadPoolExecutor,i7的cpu可以開到600個左右現成,大概20s左右掃描完65535個端口,根據電腦配置適當降低線程數#!/usr/local/python3.6.3/bin/python3.6#coding=utf-8importsocketimportdatetimeimportrefromconcurrent.futuresimportThreadPoolExecutor,waitDEBUG=Fa
系統 2019-09-27 17:52:19 1757
Python的字符串的特點Python與C語言,Java語言都不一樣,沒有單個字符,只有一個有一個字符的字符串。字符串對象不可修改,屬于不可變類型字符串和列表,元組都從屬于序列這個對象類別。所以序列支持的操作,字符串也支持。用單引號和雙引號表示都行,并列的字符串串常量會自動合并,不需要顯式的用加號表示。單雙引號里面的特殊字符必須用轉義序列表示,比如”,',\都需要在前面加個、,但是在三引號里面不需要轉義。Python的字符串的支持的基本操作支持序列的操作,
系統 2019-09-27 17:52:13 1757
經典的漢諾塔問題:這里我們可以利用遞歸的思想去做,遞歸中重要的三步,我們逐條來實現:1、函數+分支結構2、遞歸鏈條3、遞歸基例函數+分支結構:defhanoi(n,start,end,mid):globalcountif:else:這里我們可以定義一個函數,里面的參數有:一共有n個圓盤,從start柱子移到end柱子,中間柱子為mid。這里定義一個全局變量來計算移動的步驟數,若為局部變量,會在函數內部不斷初始化,所以需要定義全局變量。遞歸基例:ifn==1
系統 2019-09-27 17:52:07 1757
python安裝教程,分享給大家。一、安裝python1、首先進入網站下載:點擊打開鏈接(或自己輸入網址),進入之后如下圖,選擇圖中紅色圈中區域進行下載。2、下載完成后如下圖所示3、雙擊exe文件進行安裝,如下圖,并按照圈中區域進行設置,切記要勾選打鉤的框,然后再點擊Customizeinstallation進入到下一步:4、對于上圖中,可以通過Browse進行自定義安裝路徑,也可以直接點擊Install進行安裝,點擊install后便可以完成安裝了。5、
系統 2019-09-27 17:51:44 1757
es實現聚合es通過agg實現聚合,詳情可見es文檔有時候查詢es數據的時候可能需要實現多字段groupby的功能,例如:SELECTsum(item_count)fromAgroupbyfield1,field2,field3要實現多個維度的聚合,需要嵌套的agg查詢語句:{"query":{},"aggs":{"field1":{"terms":{"field":"field1","size":2147483647#設置一個大的分桶數,防止一次統計不完
系統 2019-09-27 17:51:32 1757
1.random.random()random.random()方法返回一個隨機數,其在0至1的范圍之內,以下是其具體用法:importrandomprint("隨機數:",random.random())輸出結果:0.228675212571162.random.uniform()random.uniform()是在指定范圍內生成隨機數,其有兩個參數,一個是范圍上限,一個是范圍下線,具體用法如下:importrandomprint(random.unif
系統 2019-09-27 17:51:23 1757
ubuntu系統自帶的python有多個版本,使用時難免會遇到環境變量出錯,特別是當自動化運行腳本的時候。特別是近一個月來,實驗室的小伙伴們的都傾心于python。為了幫助小伙伴們快速搭建自己的python環境,筆者寫下了這篇教程。當然,如果ubuntu自帶的python自己使用沒有問題,可以略去anaconda的安裝。AnacondaAnaconda指的是一個開源的Python發行版本,其包含了conda、Python等180多個科學包及其依賴項。因為包
系統 2019-09-27 17:51:20 1757