有哪些你不知道的Python小工具
Python作為越來越流行的一種編程語言,不僅僅是因為它語言簡單,有許多現成的包可以直接調用。
python中還有大量的小工具,讓你的python工作更有效率。
1. 快速共享
HTTP服務器
SimpleHTTPServer是python內置的web服務器,使用8000端口和HTTP協議共享。
能夠在任意平臺(Window,Linux,MacOS)快速搭建一個HTTP服務和共享服務,只需要搭建好python環境。
python2版本:
- python -m SimpleHTTPServer
python3版本:
- python -m http.server
FTP服務器
ftp共享需要第三方組件支持,安裝命令:
- pip install pyftpdlib
- python -m pyftpdlib-p端口號
訪問方式:ftp://IP:端口。
2. 解壓縮
這里介紹利用python解壓五種壓縮文件:.gz .tar .zip .rar
zip
- import zipfile
- # zipfile壓縮
- z = zipfile.ZipFile('x.zip', 'w', zipfile.ZIP_STORED) #打包,zipfile.ZIP_STORED是默認參數
- # 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() # 可設置解壓地址
- tar.close()
gz
gz一般僅僅壓縮一個文件,全部常與其它打包工具一起工作。比方能夠先用tar打包為X.tar,然后在壓縮為X.tar.gz
解壓gz,事實上就是讀出當中的單一文件,Python方法例如以下:
- import gzip
- import os
- def un_gz(file_name):
- """ungz zip file"""
- f_name = file_name.replace(".gz", "")
- #獲取文件的名稱,去掉
- g_file = gzip.GzipFile(file_name)
- #創建gzip對象
- open(f_name, "w+").write(g_file.read())
- #gzip對象用read()打開后,寫入open()建立的文件里。
- g_file.close()
- #關閉gzip對象
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 開發中必不可少。
安裝
在線安裝
- 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 <包名>
檢查包依賴是否完整
- pip check <包名>
查看已安裝包列表
- pip list
導出所有已安裝包
- pip freeze requirements.txt
4. 字符串與Json轉換
json轉str
- import json
- str = '{"name": "zyl", "age": "two"}'
- p = json.loads(str)
- print(p)
- print(type(p))
json轉str
使用json.dumps的方法,可以將json對象轉化為字符串。
- s = {'name':'zyl','age':'22'}
- s = json.dumps(s)
5. python讀取excel
步驟
- 安裝python官方Excel庫–>xlrd
- 獲取Excel文件位置并讀取
- 讀取sheet
- 讀取指定rows和cols內容
示例
- # -*- coding: utf-8 -*-
- import xlrd
- from datetime import date,datetime
- def read_excel():
- #文件位置
- ExcelFile=xlrd.open_workbook(r'C:UsersAdministratorDesktopTestData.xlsx')
- #獲取目標EXCEL文件sheet名
- print ExcelFile.sheet_names()
- #若有多個sheet,則需要指定讀取目標sheet例如讀取sheet2
- #sheet2_name=ExcelFile.sheet_names()[1]
- #獲取sheet內容【1.根據sheet索引2.根據sheet名稱】
- #sheet=ExcelFile.sheet_by_index(1)
- sheet=ExcelFile.sheet_by_name('TestCase002')
- #打印sheet的名稱,行數,列數
- print sheet.name,sheet.nrows,sheet.ncols
- #獲取整行或者整列的值
- rows=sheet.row_values(2)#第三行內容
- cols=sheet.col_values(1)#第二列內容
- print cols,rows
- #獲取單元格內容
- 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')
- #打印單元格內容格式
- print sheet.cell(1,0).ctype
- if__name__ =='__main__':
- read_excel()
6. python 截圖
python實現截圖功能,windows環境下,需要用到PIL庫。
安裝:
- pip install Pillow
示例:
- from PIL import ImageGrab
- bbox = (x1, y1, x2,y2 )
- # x1: 開始截圖的x坐標;x2:開始截圖的y坐標;x3:結束截圖的x坐標;x4:結束截圖的y坐標
- im = ImageGrab.grab(bbox)
- im.save('as.png')#保存截圖文件的路徑
7. ipython
最后介紹的示一個強大的python工具——IPython 。
IPython 支持變量自動補全,自動縮進,支持 bash shell 命令,內置了許多實用功能和函數;
它是一個 for Humans 的 Python 交互式 shell,用了它之后你就不想再用自帶的 Python shell 了。