作者:HelloGitHub-ProdesireHelloGitHub的《講解開源項目》系列,項目地址:https://github.com/HelloGitHub-Team/Article前言在前面三篇介紹argparse的文章中,我們全面了解了argparse的能力,相信不少小伙伴們都已經摩拳擦掌,想要打造一個屬于自己的命令行工具。本文將以我們日常工作中最常見的git命令為例,講解如何使用argparse庫來實現一個真正可用的命令行程序。本系列文章默認
系統 2019-09-27 17:52:36 1758
前言剛開始開發Web的時候,沒太在意隔離虛擬環境,用了系統的那一套,Python2.7版本是系統自帶的,雖說明年就結束了,但是現在開發都會有一套3.x以上的環境,即使你開發不注意,你部署的時候總歸是要隔離出來的。1.方便隔離,不同環境編寫測試2.方便遷移,pipfreeze到出包文件依賴,隨后提交管理和遷移都很方便virtualenv前提是你有兩套PythonmikejingdeMacBook-Pro:~MKJ$whichpython/usr/bin/py
系統 2019-09-27 17:52:34 1758
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 1758
掃描服務器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 1758
MongoDB是目前最流行的NoSQL數據庫之一,使用的數據類型BSON(類似JSON)。1.安裝Mongodb和pymongoMongodb的安裝和配置Mongodb的安裝教程請網上搜索,安裝完成后,進行以下配置過程:1.1創建目錄,該目錄為Mongodb數據文件的存放目錄:*注:本人使用的不是root用戶,所以修改目錄的擁有者.*sudomkdir/datasudochown-Rpython:python/datamkdir/data/db1.2分別執
系統 2019-09-27 17:52:16 1758
Python資源大全中文版原文鏈接:http://www.jianshu.com/p/9c6ae64a1bd7GitHub上有一個Awesome-XXX系列的資源整理,資源非常豐富,涉及面非常廣。awesome-python是vinta發起維護的Python資源列表,內容包括:Web框架、網絡爬蟲、網絡內容提取、模板引擎、數據庫、數據可視化、圖片處理、文本處理、自然語言處理、機器學習、日志、代碼分析等。版權是https://github.com/jobbo
系統 2019-09-27 17:51:57 1758
最近在工作中遇到一個問題,就是有一個功能希望在各種服務器上實現,而服務器上的系統版本可能都不一樣,有的是CentOS6.x,有的是CentOS7.x。需要說明的一點是,CentOS6.x上的Python版本是2.6.x的,而CentOS7.x上的Python版本是2.7.x的,這意味著我要實現的功能要適配這兩種版本的系統。你可能會說,這有什么的,自己寫的時候,注意一下就好了。事情其實沒有那么容易,我要實現的功能是基于一個框架進行定制,需要修改不少的框架代碼
系統 2019-09-27 17:51:50 1758
函數這么重要的東西自然少不了。那么在python中是怎么定義的呢?defcgg(name):print("haha%s"%name)def是定義的意思,而cgg是函數名,name是參數。當然了,有了函數嗎,自然少不了函數的返回值。那么這里用的依然是return。defcgg(a,b):returna+b模塊一個小例子:importtimeprint(time.asctime())這個可以顯示現在的時間。而這個time就是一個模塊,包括之前的turtle也是
系統 2019-09-27 17:51:49 1758
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 1758
基礎元素學習一門編程語言的時候,我最先考慮的事情就是如何操作值,值(value)在程序組可以是一個數字1,2,3,4,字符'hello,word'.我們使用變量來保存這些值。又把變量保存的值成為對象,計算機會給變量的對象和變量分配內存空間。python使用的內存分配方式成為引用語義或者對象語義,而像c語言使用的時值語義。接下來具體說明一下這兩種語義的區別。值語義:所謂值語義是指目標對象由源對象拷貝生成,且生成后與源對象完全無關,彼此獨立存在,改變互不影響。
系統 2019-09-27 17:51:31 1758