有哪些你不知道的Python小工具
Python作為越來(lái)越流行的一種編程語(yǔ)言,不僅僅是因?yàn)樗Z(yǔ)言簡(jiǎn)單,有許多現(xiàn)成的包可以直接調(diào)用。
python中還有大量的小工具,讓你的python工作更有效率。
1. 快速共享
HTTP服務(wù)器
SimpleHTTPServer是python內(nèi)置的web服務(wù)器,使用8000端口和HTTP協(xié)議共享。
能夠在任意平臺(tái)(Window,Linux,MacOS)快速搭建一個(gè)HTTP服務(wù)和共享服務(wù),只需要搭建好python環(huán)境。
python2版本:
- python -m SimpleHTTPServer
python3版本:
- python -m http.server
FTP服務(wù)器
ftp共享需要第三方組件支持,安裝命令:
- pip install pyftpdlib
- python -m pyftpdlib-p端口號(hào)
訪問(wèn)方式:ftp://IP:端口。
2. 解壓縮
這里介紹利用python解壓五種壓縮文件:.gz .tar .zip .rar
zip
- import zipfile
- # zipfile壓縮
- z = zipfile.ZipFile('x.zip', 'w', zipfile.ZIP_STORED) #打包,zipfile.ZIP_STORED是默認(rèn)參數(shù)
- # z = zipfile.ZipFile('ss.zip', 'w', zipfile.ZIP_DEFLATED) #壓縮
- z.write('x2')
- z.write('x1')
- z.close()
- #zipfile解壓
- z = zipfile.ZipFile('x.zip', 'r')
- z.extractall(path=r"C:UsersAdministratorDesktop")
- z.close()
tar
- import tarfile
- # 壓縮
- tar = tarfile.open('your.tar', 'w')
- tar.add('/Users/wupeiqi/PycharmProjects/bbs2.log', arcname='bbs2.log')
- tar.add('/Users/wupeiqi/PycharmProjects/cmdb.log', arcname='cmdb.log')
- tar.close()
- # 解壓
- tar = tarfile.open('your.tar', 'r')
- tar.extractall() # 可設(shè)置解壓地址
- tar.close()
gz
gz一般僅僅壓縮一個(gè)文件,全部常與其它打包工具一起工作。比方能夠先用tar打包為X.tar,然后在壓縮為X.tar.gz
解壓gz,事實(shí)上就是讀出當(dāng)中的單一文件,Python方法例如以下:
- import gzip
- import os
- def un_gz(file_name):
- """ungz zip file"""
- f_name = file_name.replace(".gz", "")
- #獲取文件的名稱(chēng),去掉
- g_file = gzip.GzipFile(file_name)
- #創(chuàng)建gzip對(duì)象
- open(f_name, "w+").write(g_file.read())
- #gzip對(duì)象用read()打開(kāi)后,寫(xiě)入open()建立的文件里。
- g_file.close()
- #關(guān)閉gzip對(duì)象
rar
由于rar通常為window下使用,須要額外的Python包rarfile。
安裝:
- Python setup.py install
解壓縮:
- import rarfile
- import os
- def un_rar(file_name):
- """unrar zip file"""
- rar = rarfile.RarFile(file_name)
- if os.path.isdir(file_name + "_files"):
- pass
- else:
- os.mkdir(file_name + "_files")
- os.chdir(file_name + "_files"):
- rar.extractall()
- rar.close()
3.pip常用操作
pip 是 Python 著名的包管理工具,在 Python 開(kāi)發(fā)中必不可少。
安裝
在線安裝
- pip install <包名> 或 pip install -r requirements.txt
本地安裝:
- pip install <目錄>/<文件名> 或 pip install --use-wheel --no-index --find-links=wheelhouse/ <包名>
查找包
- pip search <包名>
刪除包
- pip uninstall <包名> 或 pip uninstall -r requirements.txt
查看包信息
- pip show <包名>
檢查包依賴(lài)是否完整
- pip check <包名>
查看已安裝包列表
- pip list
導(dǎo)出所有已安裝包
- pip freeze requirements.txt
4. 字符串與Json轉(zhuǎn)換
json轉(zhuǎn)str
- import json
- str = '{"name": "zyl", "age": "two"}'
- p = json.loads(str)
- print(p)
- print(type(p))
json轉(zhuǎn)str
使用json.dumps的方法,可以將json對(duì)象轉(zhuǎn)化為字符串。
- s = {'name':'zyl','age':'22'}
- s = json.dumps(s)
5. python讀取excel
步驟
- 安裝python官方Excel庫(kù)–>xlrd
- 獲取Excel文件位置并讀取
- 讀取sheet
- 讀取指定rows和cols內(nèi)容
示例
- # -*- coding: utf-8 -*-
- import xlrd
- from datetime import date,datetime
- def read_excel():
- #文件位置
- ExcelFile=xlrd.open_workbook(r'C:UsersAdministratorDesktopTestData.xlsx')
- #獲取目標(biāo)EXCEL文件sheet名
- print ExcelFile.sheet_names()
- #若有多個(gè)sheet,則需要指定讀取目標(biāo)sheet例如讀取sheet2
- #sheet2_name=ExcelFile.sheet_names()[1]
- #獲取sheet內(nèi)容【1.根據(jù)sheet索引2.根據(jù)sheet名稱(chēng)】
- #sheet=ExcelFile.sheet_by_index(1)
- sheet=ExcelFile.sheet_by_name('TestCase002')
- #打印sheet的名稱(chēng),行數(shù),列數(shù)
- print sheet.name,sheet.nrows,sheet.ncols
- #獲取整行或者整列的值
- rows=sheet.row_values(2)#第三行內(nèi)容
- cols=sheet.col_values(1)#第二列內(nèi)容
- print cols,rows
- #獲取單元格內(nèi)容
- print sheet.cell(1,0).value.encode('utf-8')
- print sheet.cell_value(1,0).encode('utf-8')
- print sheet.row(1)[0].value.encode('utf-8')
- #打印單元格內(nèi)容格式
- print sheet.cell(1,0).ctype
- if__name__ =='__main__':
- read_excel()
6. python 截圖
python實(shí)現(xiàn)截圖功能,windows環(huán)境下,需要用到PIL庫(kù)。
安裝:
- pip install Pillow
示例:
- from PIL import ImageGrab
- bbox = (x1, y1, x2,y2 )
- # x1: 開(kāi)始截圖的x坐標(biāo);x2:開(kāi)始截圖的y坐標(biāo);x3:結(jié)束截圖的x坐標(biāo);x4:結(jié)束截圖的y坐標(biāo)
- im = ImageGrab.grab(bbox)
- im.save('as.png')#保存截圖文件的路徑
7. ipython
最后介紹的示一個(gè)強(qiáng)大的python工具——IPython 。
IPython 支持變量自動(dòng)補(bǔ)全,自動(dòng)縮進(jìn),支持 bash shell 命令,內(nèi)置了許多實(shí)用功能和函數(shù);
它是一個(gè) for Humans 的 Python 交互式 shell,用了它之后你就不想再用自帶的 Python shell 了。