作者:HelloGitHub-ProdesireHelloGitHub的《講解開源項目》系列,項目地址:https://github.com/HelloGitHub-Team/Article前言在前面三篇介紹argparse的文章中,我們?nèi)媪私饬薬rgparse的能力,相信不少小伙伴們都已經(jīng)摩拳擦掌,想要打造一個屬于自己的命令行工具。本文將以我們?nèi)粘9ぷ髦凶畛R姷膅it命令為例,講解如何使用argparse庫來實現(xiàn)一個真正可用的命令行程序。本系列文章默認(rèn)
系統(tǒng) 2019-09-27 17:52:36 1758
前言剛開始開發(fā)Web的時候,沒太在意隔離虛擬環(huán)境,用了系統(tǒng)的那一套,Python2.7版本是系統(tǒng)自帶的,雖說明年就結(jié)束了,但是現(xiàn)在開發(fā)都會有一套3.x以上的環(huán)境,即使你開發(fā)不注意,你部署的時候總歸是要隔離出來的。1.方便隔離,不同環(huán)境編寫測試2.方便遷移,pipfreeze到出包文件依賴,隨后提交管理和遷移都很方便virtualenv前提是你有兩套PythonmikejingdeMacBook-Pro:~MKJ$whichpython/usr/bin/py
系統(tǒng) 2019-09-27 17:52:34 1758
1.鎖:Lock(1次放1個)同步鎖線程安全,多線程操作時,內(nèi)部會讓所有線程排隊處理。如:list/dict/Queue線程不安全+人=>排隊處理。需求:a.創(chuàng)建100個線程,在列表中追加8b.創(chuàng)建100個線程v=[]鎖-把自己的添加到列表中。-在讀取列表的最后一個。解鎖以后鎖一個代碼塊:importthreadingimporttimev=[]lock=threading.Lock()deffunc(arg):lock.acquire()#鎖的區(qū)域---
系統(tǒng) 2019-09-27 17:52:33 1758
掃描服務(wù)器ip開放端口,用線程池ThreadPoolExecutor,i7的cpu可以開到600個左右現(xiàn)成,大概20s左右掃描完65535個端口,根據(jù)電腦配置適當(dāng)降低線程數(shù)#!/usr/local/python3.6.3/bin/python3.6#coding=utf-8importsocketimportdatetimeimportrefromconcurrent.futuresimportThreadPoolExecutor,waitDEBUG=Fa
系統(tǒng) 2019-09-27 17:52:19 1758
MongoDB是目前最流行的NoSQL數(shù)據(jù)庫之一,使用的數(shù)據(jù)類型BSON(類似JSON)。1.安裝Mongodb和pymongoMongodb的安裝和配置Mongodb的安裝教程請網(wǎng)上搜索,安裝完成后,進行以下配置過程:1.1創(chuàng)建目錄,該目錄為Mongodb數(shù)據(jù)文件的存放目錄:*注:本人使用的不是root用戶,所以修改目錄的擁有者.*sudomkdir/datasudochown-Rpython:python/datamkdir/data/db1.2分別執(zhí)
系統(tǒng) 2019-09-27 17:52:16 1758
Python資源大全中文版原文鏈接:http://www.jianshu.com/p/9c6ae64a1bd7GitHub上有一個Awesome-XXX系列的資源整理,資源非常豐富,涉及面非常廣。awesome-python是vinta發(fā)起維護的Python資源列表,內(nèi)容包括:Web框架、網(wǎng)絡(luò)爬蟲、網(wǎng)絡(luò)內(nèi)容提取、模板引擎、數(shù)據(jù)庫、數(shù)據(jù)可視化、圖片處理、文本處理、自然語言處理、機器學(xué)習(xí)、日志、代碼分析等。版權(quán)是https://github.com/jobbo
系統(tǒng) 2019-09-27 17:51:57 1758
最近在工作中遇到一個問題,就是有一個功能希望在各種服務(wù)器上實現(xiàn),而服務(wù)器上的系統(tǒng)版本可能都不一樣,有的是CentOS6.x,有的是CentOS7.x。需要說明的一點是,CentOS6.x上的Python版本是2.6.x的,而CentOS7.x上的Python版本是2.7.x的,這意味著我要實現(xiàn)的功能要適配這兩種版本的系統(tǒng)。你可能會說,這有什么的,自己寫的時候,注意一下就好了。事情其實沒有那么容易,我要實現(xiàn)的功能是基于一個框架進行定制,需要修改不少的框架代碼
系統(tǒng) 2019-09-27 17:51:50 1758
函數(shù)這么重要的東西自然少不了。那么在python中是怎么定義的呢?defcgg(name):print("haha%s"%name)def是定義的意思,而cgg是函數(shù)名,name是參數(shù)。當(dāng)然了,有了函數(shù)嗎,自然少不了函數(shù)的返回值。那么這里用的依然是return。defcgg(a,b):returna+b模塊一個小例子:importtimeprint(time.asctime())這個可以顯示現(xiàn)在的時間。而這個time就是一個模塊,包括之前的turtle也是
系統(tǒng) 2019-09-27 17:51:49 1758
es實現(xiàn)聚合es通過agg實現(xiàn)聚合,詳情可見es文檔有時候查詢es數(shù)據(jù)的時候可能需要實現(xiàn)多字段groupby的功能,例如:SELECTsum(item_count)fromAgroupbyfield1,field2,field3要實現(xiàn)多個維度的聚合,需要嵌套的agg查詢語句:{"query":{},"aggs":{"field1":{"terms":{"field":"field1","size":2147483647#設(shè)置一個大的分桶數(shù),防止一次統(tǒng)計不完
系統(tǒng) 2019-09-27 17:51:32 1758
基礎(chǔ)元素學(xué)習(xí)一門編程語言的時候,我最先考慮的事情就是如何操作值,值(value)在程序組可以是一個數(shù)字1,2,3,4,字符'hello,word'.我們使用變量來保存這些值。又把變量保存的值成為對象,計算機會給變量的對象和變量分配內(nèi)存空間。python使用的內(nèi)存分配方式成為引用語義或者對象語義,而像c語言使用的時值語義。接下來具體說明一下這兩種語義的區(qū)別。值語義:所謂值語義是指目標(biāo)對象由源對象拷貝生成,且生成后與源對象完全無關(guān),彼此獨立存在,改變互不影響。
系統(tǒng) 2019-09-27 17:51:31 1758