python昨天
① 如何配置python環境下的sublime
前言:
我以前就用著 SublimeText 2,但是 python 環境一直不能用。昨天看到《如何優雅地使用 Sublime Text》這篇文章,據說 SublimeText 3 能瞬間啟動,就忍不住想換掉2版了。我主要在日常查看、編輯文檔的時候用一下SublimeText,偶爾作為編輯器敲敲Python代碼。
網上安裝的教程很多,我主要記錄一下我自己安裝的和配置的過程,作一個備忘。
文件下載地址:SublimeText3工具箱。
安裝和配置過程:
安裝:
打開 Sublime Text Build 3083 x64 Setup.exe ,安裝 SublimeText 3。
漢化:
打開 SublimeText 3,點擊Preferences-》Browser Package,將會打開Packages文件夾。將 Sublime_Text_CN_3083.zip 裡面的文件解壓到這個路徑,漢化完成。
破解:
未破解的 SublimeText 3 標題欄上有個 Sublime Text(UNREGISTERED)後綴,我們只需要輸入一個激活碼就行了。點擊幫助-》輸入許可證,輸入下面的代碼就可以了:
----- BEGIN LICENSE -----Andrew WeberSingle User LicenseEA7E-855605813A03DD 5E4AD9E6 6C0EEB94 BC99798F942194A6 02396E98 E62C9979 4BB979FE91424C9D A45400BF F6747D88 2FB8807890F5CC94 1CDC92DC 8457107A F151657B1D22E383 A997F016 42397640 33F41CFCE1D0AE85 A0BBD039 0E9C8D55 E1B89D5D5CDB7036 E56DE1C0 EFCC0840 650CD3A6B98FC99C 8FAC73EE D2B95564 DF450523------ END LICENSE ------12345678910111213
設置不保存上次打開的文件:
點擊Preferences-》設置-用戶,將會打開 Preferences.sublime-settings 文件,在裡面添加兩行代碼:
"hot_exit": false,"remember_open_files": false12
禁止 SublimeText 3 自動檢查更新:
點擊Preferences-》設置-用戶,將會打開 Preferences.sublime-settings 文件,在裡面添加一行代碼:
"update_check": false1
更改 SublimeText 3 的主題:
主題下載地址:進入Github地址後點擊「Download ZIP」下載主題)
點擊Preferences-》瀏覽程序包,將會打開 Packages 文件夾,把下載的主題解壓在這個路徑,並改名為 「Theme - XXXX」(XXXX為主題的名字)。例如我用的主題是 cobalt2(Github地址:),下載解壓後文件夾的名字是「cobalt2-master」,把它改名為「Theme - Cobalt2」並放進Packages文件夾里。
點擊Preferences-》設置-用戶,將會打開 Preferences.sublime-settings 文件,在裡面添加兩行代碼:
"color_scheme": "Packages/Theme - Cobalt2/cobalt2.tmTheme","theme": "Cobalt2.sublime-theme"12
最後點擊Preferences-》配色方案,就可以看到有 Cobalt2 主題選項了。
(有可能會遇到編輯框的主題變了,而左邊側邊欄仍然是黑色的,更改的方法是安裝一個包:SyncedSidebarBg,安裝包的方法見下方。)
安裝包的方法:
SublimeText3 安裝包可以直接從網上下載對應的包,然後解壓到 Packages 文件夾,也可以用 Package Control:install 的方法:
使用 Ctrl+` 快捷鍵或者通過View-》Show Console菜單打開命令行,粘貼如下代碼再回車:
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())1
此後就可以按 Ctrl + Shift + P 組合鍵調出命令框,輸入 install 再回車,輸入要下載的包名即可。
Python環境的配置:
首先,安裝幾個包:AutoPep8、Pylinter、SublimeCodeIntel。
接著Preferences-》瀏覽程序包打開 Packages 文件夾,進入裡面的 Pylinter 文件夾,把 pylint-1.5.2.tar.gz 壓縮包里的內容解壓到這個路徑。
解壓以後,進入pylint-1.5.2-》examples,打開 pylintrc 文件(可以用SublimeText3打開),大約在28行有句 「symbols=no」 ,前面加個 「#」 把它注釋掉。
再接著就是配置路徑:打開Preferences-》Package Settings-》Pylinter-》Settings - Default,在裡面改幾個路徑:
python_path 的路徑填上 python 的安裝路徑(即 python.exe 所在路徑)
pylint_path 的路徑填上剛才解壓出來的路徑(即 「…./Packages/Pylinter/pylint-1.5.2)
此時打開一個 .py 文件,按 Ctrl + B 執行即可。
打開 txt 文件時出現主題亂了的問題:
可能是SublimeText3沒有設置默認打開方式,點擊右下角狀態欄中的打開方式,選擇Open all with current extension as …-》Plain Text,這是默認以純文本方式打開。
(如果下方狀態欄沒有打開的話可以點擊查看-》打開/關閉狀態欄;或者按 Ctrl + Shift + P 組合鍵調出命令窗口,輸入 View:Toggle Status Bar 打開狀態欄。)
SublimeText3 常用技巧:
Ctrl + D:選擇相同內容(一行接一行)
② 學java和Python哪個好
昨天,在貼吧上看到有人在問:「無基礎,學Java還是Python,哪一個學習的更快?」看到這個問題,從個人角度有點搞笑。但從專業角度來說,這兩種語言都很重要,都值得學習。今天,java課程培訓機構對於這個問題,想說說自己的見解!以免更多小夥伴步入誤區!
首先,在選飢桐敏擇學習Java編程語言還是Python編程語言之前,得明白自己學習編程的目的是什麼?是為了學會變成後跳入互聯網企業工作,為轉行做准備;還是想快速入門編程語言,學習輪氏一份技能傍身,為將來做打算。前者建議選擇學習Java,後者大神建議學習Python。小編總結一下兩者的區別,希望能夠幫助到大家!
1、入門難度:Python小於Java。Python的語法簡潔清晰,語法接近英語,Python簡單的語法和少到可以忽略不計的語法糖可已讓初學者專注於思考要做的事情,而不需要在過程上大費周章。開發環境簡單,能打字就能寫代碼,適合新手入門學習。Java語法需要較好的邏輯思維能力,Java基礎語法需要學習的東西也比較多,如:關鍵字、標識符、注釋、常量與變數、運算符、語句、函數、數組等等,入門比Python要難些。
2、流行程度:自2002年起,歷年世界編程語言排行榜——TIOBE排行榜,Java常年位居世界第一,Python則在2016年排在第五位;在歐美國家,較為流行Python,而國內依舊還是Java與PHP的天下!
3、國內用途:目前國爛枝內Java主要用於開發:大型企業級應用、電子政務,政府部門信息化系統、嵌入式設備及、消費類設備、大型網站(特別是淘寶、阿里巴巴等電商網站)、Android系統,APP,游戲等。而Python主要用來搞人工智慧機器和運維後端方向,暫時並不是特別的廣。
4、工作機會:在國內一二線城市JavaEE開發人員市場缺口巨大,連續兩年,Java開發工程師人才缺口均已達40萬,企業高薪難聘Java開發工程師。而據職友集統計,全國Python的招聘崗位還不到7萬,遠遠少於Java開發的崗位需求人數。
③ python中如何把datetime.datetime轉換成datetime.time
用Python實現字元串和日期相互轉換的方法,具體如下:這里用的分別是time和datetime函數來處理 importtime,datetime //日期轉化為字元串 #datetostr //輸出時間 printtime.strftime("%Y-%m-%d%X",time.localtime()) #strtodate //字元串轉化為日期 t=time.strptime("2016-12-05","%Y-%m-%d") y,m,d=t[0:3] //輸出時間 printdatetime.datetime(y,m,d)
④ python自學新手求解問題
endings就是一個字元串數組,17 * ['th']的意思就是:給這個數據添加17個'th'字元串;例如
a=3*['a']和a=['a','a','a']是一樣的。
剩下的就是英文問題了,st第一天,或者是第21天等等
⑤ python怎麼設置環境變數
Python設置環境變數的具體方法:
WINDOWS操作系統方法:
1、在python安裝過程中會提示是否加入環境變數,勾選即可。
2、在系統變數里找到PATH,雙擊PATH,在結尾加上 ";C:Python27"(不要引號)確定即可,如下圖所示位置:
print"HelloWorld!"
應該有如下結果:
>>> print "Hello World!"
Hello World!
linux系統安裝好python後默認直接在終端輸入python即可。
⑥ 如何讓python調用C和C++代碼
如何讓python調用C和C++代碼
安裝python後,會有一個chm格式的python手冊。要搞明白如何讓python調用C/C++代碼(也就是寫python的 extension),你需要征服手冊中的
<<Extending && embedding>>厚厚的一章。在昨天花了一個小時看地頭暈腦脹,仍然不知道如何寫python的extension後,查閱了一些其他 書籍,最終在<<Python Programming On Win32>>書中找到了教程。
下面記錄一下如何在visual studio 2005中,寫一段C/C++的MessageBox代碼,然後提供後python調用,最後的結果當然是顯示一個MessageBox.
1. 首先要明白的是,所謂的python擴展(也就是你提供給python的c/c++代碼,不一定是c/c++代碼,可以是其他語言寫的代碼)是一個 dll,並且這個dll放在本機python安裝目錄下的DLLs目錄下(譬如我機器上的路徑是:F:\Program Files\Python25\DLLs),假如我們接下來要寫的擴展mole名為mb,python調用的代碼為: import mb
mb.showMsg("Python's really amazing, I kindda love it!")
python怎麼找到我們的mb模塊呢?就是上面說的,我們要生成一個mb.dll,然後拷貝到Dlls目錄下面,為了區別普通的dll和python專用擴展的dll,我們的 mb.dll修改成mb.pyd(python dll)
2. 搭建環境,我們要使用python提供的c頭文件和lib庫來進行擴展的開發。 在vs 2005下點擊菜單 "工具"->"選項", 打開選項對話框,選擇"項目和解決方案->VC++目錄", 然後在右邊"顯示以下內容的目錄"得comboBox上選擇"包含文件」,添加python的include目錄(我的機器上是"F:\Program
Files\Python25\include"),然後選擇庫文件,添加python的libs目錄(我的機器上是"F:\Program Files\Python25\libs")。
既然擴展是一個dll,接下來我們要建立一個「動態鏈接庫」工程,然後開始寫代碼:
#include <python.h> //python.h是包含python一些定義的頭文件,在python的include目錄下 /*
我的python版本是2.5, 因為安裝python後它沒提供debug下的lib庫文件,因此你必須生成release版的dll,
想要生成dll版本的,你要到python官網上自己去下載python源代碼,當然你可以繼續生成release版本的dll,但dll中包含調試信息
*/
#pragma comment(lib, "python25.lib")
//先不管
static PyObject* mb_showMsg(PyObject* self, PyObject *args); /*
如果你的擴展是mb,那麼必須實現一個initmb函數,並且從dll中導出這個函數,但我們在python中調用import mb時,python會去dll里去調用
initmb函數,這個函數告訴python我們有些什麼函數,該怎麼告訴python我們有一個showMsg函數呢?下面詳解 */
//必須extern "C"下,這樣不會在C++編譯器里不會更改掉導出的函數名字,我第一次就犯了這樣的錯誤
extern "C" __declspec(dllexport) void initmb() { /*
當調用mb.showMsg("Python's really amazing, I kindda love it!")時, 相當於你告訴python我有一個showMsg函數,我們怎麼告訴python去調用我們dll里的mb_showMsg函數呢?技巧就是下面的方式, 定義一個字典數據結構,key => showMsg, value =>mb_showMsg,METH_VARARGS是函數調用方式,仔細查手冊吧 */
static PyMethodDef mbMethods[] = { {"showMsg", mb_showMsg, METH_VARARGS},
{NULL, NULL, NULL} /*sentinel,哨兵,用來標識結束*/ };
//告訴python我們的模塊名叫mb, 模塊包含的函數都在mbMethods字典里 PyObject *m = Py_InitMole("mb", mbMethods); } /*
接下來實現核心功能showMsg */
//第一個self參數我們用不著,具體查手冊,第二個參數是python傳給我們的參數,它是一個python的參數tuple
static PyObject* mb_showMsg(PyObject* self, PyObject *args) {
//我們的showMsg函數需要的是一個字元串參數 const char* msg = NULL; /*
調用特殊參數解碼python傳遞給我們的參數,s是string,我們傳遞接收參數的變數地址,
如果你的功能函數需要兩個參數,在PyArg_parseTuple後面繼續添加接受參數的變數地址,
這個函數的原型是類似printf的不定參數的形式
PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...); */
if (!PyArg_ParseTuple(args, "s", &msg)) return NULL;
//調用MB
int r = ::MessageBox(NULL, "hello", "Caption:Form C mole", MB_ICONINFORMATION | MB_OK);
//返回值
return Py_BuildValue("i", r); }
將上面這段混雜著大量注釋的代碼拷貝到你的編輯器里,然後編譯生成mb.dll,修改後綴成mb.pyd,然後拷貝到python的DLLs目錄下,打開idle(python的交互程序),寫入代碼: import mb
mb.showMsg("Python's really amazing, I kindda love it!")
可以看到彈出來一個MessageBox。
⑦ 通信專業的學習python有用么
肯定吵擾有用,這個語言很實用,現在互聯網行業這么火爆,你學胡銷了python,就多了一個升做旦技能傍身,職業選擇也多了一個,憑借python,你可以在很多互聯網企業找到工作。
⑧ python selenium 獲取簡訊驗證碼是字元和數字怎麼讀取數字
讀取簡訊需要在相應的手機上讀取呀
由於工作需要,登錄網站需要用到驗證碼。最初是研究過驗證碼識別的,但是總是不能獲取到我需要的那個驗證碼。直到這周五,才想起這事來,昨天順利的解決了。
下面正題:
Python版本:3.4.3
所需要的代碼庫:PIL,selenium,tesseract
先上代碼:
#coding:utf-8
import subprocess
from PIL import Image
from PIL import ImageOps
from selenium import webdriver
import time,os,sys
def cleanImage(imagePath):
image = Image.open(imagePath) #打開圖片
image = image.point(lambda x: 0 if x<143 else 255) #處理圖片上的每個像素點,使圖片上每個點「非黑即白」
borderImage = ImageOps.expand(image,border=20,fill='white')
borderImage.save(imagePath)
def getAuthCode(driver, url="http://localhost/"):
captchaUrl = url + "common/random"
driver.get(captchaUrl)
time.sleep(0.5)
driver.save_screenshot("captcha.jpg") #截屏,並保存圖片
#urlretrieve(captchaUrl, "captcha.jpg")
time.sleep(0.5)
cleanImage("captcha.jpg")
p = subprocess.Popen(["tesseract", "captcha.jpg", "captcha"], stdout=\
subprocess.PIPE,stderr=subprocess.PIPE)
p.wait()
f = open("captcha.txt", "r")
#Clean any whitespace characters
captchaResponse = f.read().replace(" ", "").replace("\n", "")
print("Captcha solution attempt: " + captchaResponse)
if len(captchaResponse) == 4:
return captchaResponse
else:
return False
def withoutCookieLogin(url=""):
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)
while True:
authCode = getAuthCode(driver, url)
if authCode:
driver.back()
driver.find_element_by_xpath("//input[@id='orgCode' and @name='orgCode']").clear()
driver.find_element_by_xpath("//input[@id='orgCode' and @name='orgCode']").send_keys("orgCode")
driver.find_element_by_xpath("//input[@id='account' and @name='username']").clear()
driver.find_element_by_xpath("//input[@id='account' and @name='username']").send_keys("username")
driver.find_element_by_xpath("//input[@type='password' and @name='password']").clear()
driver.find_element_by_xpath("//input[@type='password' and @name='password']").send_keys("password")
driver.find_element_by_xpath("//input[@type='text' and @name='authCode']").send_keys(authCode)
driver.find_element_by_xpath("//button[@type='submit']").click()
try:
time.sleep(3)
driver.find_element_by_xpath("//*[@id='side-menu']/li[2]/ul/li/a").click()
return driver
except:
print("authCode Error:", authCode)
driver.refresh()
return driver
driver = withoutCookieLogin("http://localhost/")
driver.get("http://localhost/enterprise/add/")
怎麼獲取我們需要的驗證碼
在這獲取驗證碼的道路上,我掉了太多的坑,看過太多的文章,很多都是教你驗證碼的識別方法,但是沒有說明,怎麼獲取你當前需要的驗證碼圖片。
我的處理方法是:
1.先用selenium打開你需要的登錄的頁面地址url1
2.通過審核元素獲取驗證碼的地址url2(其實最簡單的是右鍵打開新頁面)
3:在url1頁面,輸入地址url2進入url2頁面,然後截屏保存驗證碼頁面
4:處理驗證碼得到驗證碼字元串。然後點擊瀏覽器後退按鈕,返回url1登錄頁面
5:輸入登錄需要的信息和驗證碼
6:點擊登錄
7:驗證登錄後的頁面,判斷是否成功,若不成功則需要重新1-7的操作。
為了保護公司的信息,這個頁面是我本地搭的服務,我在伯樂在線注冊頁面進行測試過這個驗證碼獲得方法,可以通過。(這個驗證碼的處理方法,僅限驗證碼背景是像素點,若驗證碼有橫線需額外處理。)
第一篇博文,不喜勿噴。
驗證碼處理方法參考文獻:
Web Scraping with python.pdf
⑨ 想學爬蟲就一定要學Python嗎
學python不一定要學爬蟲。python的應用范圍很廣泛,如軟體開發、科學計算、自動化運維、雲計算、web開發、網路爬蟲、人工智慧等。爬蟲不僅僅可以用python寫,很多語言都可以實現爬蟲。例C,C++、C#、Perl、 Python、Java、 Ruby都可以寫爬蟲,原理其實相差不大,只不過是平台問題。網路爬蟲是一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。
傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件;爬蟲主要的工作就是根據一定的規則去抓取網路上我們想要的數據的程序,這里大家要注意的是爬蟲不一定非要使用Python才可以實現的,使用JavaScript、Java等語言都是可以實現的。千鋒教育擁有多年Python培訓服務經驗,採用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。