赞
踩
colorama是一个python专门用来在控制台、命令行输出彩色文字的模块,可以跨平台使用。
colorama内部模块:Fore是针对字体颜色,Back是针对字体背景颜色,Style是针对字体格式。
- Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
- Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
- Style: DIM, NORMAL, BRIGHT, RESET_ALL
init()接受一些* * kwargs覆盖缺省行为,
autoreset是自动恢复到默认颜色。
- from colorama import init, Fore, Back
-
- init(autoreset=True)
-
- print(Fore.BLUE + "hgg")
- print(Fore.YELLOW + Back.RED + "XXXX")
- print("hello world")
python 中curses封装了c语言的curses。curses是一个在linux/unix下广泛应用的图形函数库,作用是可以在终端内绘制简单的图形用户界面。curses库不支持Windows操作系统,但有一个非正式curses包可以尝试,另外windows平台可以使用Console模块。
curses的名字起源于"cursor optimization",即光标优化。
可以说,curses是Linux终端图形编程的不二选择(比如著名的文字编辑器 vi 就是基于curses编的)。
python标准库自带CSV模块。
- import csv
-
- csvfile = open('csv_test.csv', 'r')
-
- # 以列表形式输出
- reader = csv.reader(csvfile)
- rows = [row for row in reader]
-
- # 以字典形式输出,第一行作为字典的键
- reader = csv.DictReader(csvfile)
- for row in reader:
- # row 是一个 dict
-
- # 写文件
- # 若存在文件,打开csv文件,若不存在即新建文件
- # 如不设置newline='',每行数据会隔一行空白行
- csvfile = open('csv_test.csv', 'w', newline='')
- # 将文件加载到csv对象中
- writer = csv.writer(csvfile)
- # 写入一行数据
- writer.writerow(['姓名', '年龄', '电话'])
- # 多行数据写入
- data = [
- ('小P', '18', '138001380000'),
- ('小Y', '22', '138001380000')
- ]
- writer.writerows(data)
- # 关闭csv对象
- csvfile.close()
python操作excel的有xlrd(xls read),xlwt(xls write)。
- pip install xlrd
- pip install xlwt
- import xlwt
-
- # 新建一个Excel文件
- wb = xlwt.Workbook()
- # 新建一个Sheet
- ws = wb.add_sheet('Python', cell_overwrite_ok=True)
-
- # 定义格式对象
- style = xlwt.XFStyle()
-
- # 合并单元格write_merge(开始行, 结束行, 开始列, 结束列, 内容, 格式)
- ws.write_merge(0, 0, 0, 5, 'Python', style)
-
- # 写入数据wb.write(行,列,内容)
- for i in range(2, 7):
- for k in range(5):
- ws.write(i, k, i+k)
- # Excel公式xlwt.Formula
- ws.write(i, 5, xlwt.Formula('SUM(A'+str(i+1)+':E'+str(i+1)+')'))
-
- # 插入图片,insert_bitmap(img, x, y, x1, y1, scale_x=0.8, scale_y=1)
- # 图片格式必须为bmp
- # x表示行数,y表示列数
- # x1表示相对原来位置向下偏移的像素
- # y1表示相对原来位置向右偏移的像素
- # scale_x,scale_y缩放比例
- ws.insert_bitmap('test.bmp', 9, 1, 2, 2, scale_x=0.3, scale_y=0.3)
-
- # 保存文件
- wb.save('file.xls')
- import xlrd
-
- wb = xlrd.open_workbook('file.xls')
-
- # 获取Sheets总数
- ws_count = wb.nsheets
-
- # 通过索引顺序获取Sheets
- # ws = wb.sheets()[0]
- # ws = wb.sheet_by_index(0)
-
- # 通过Sheets名获取Sheets
- ws = wb.sheet_by_name('Python')
-
- # 获取整行的值(以列表返回内容)
- row_value = ws.row_values(3)
-
- # 获取整列的值(以列表返回内容)
- row_col = ws.col_values(3)
-
- # 获得行列数
- nrows = ws.nrows
- ncols = ws.ncols
-
- # 获取某个单元格内容cell(行, 列)
- cell_F3 = ws.cell(2, 5).value
-
- # 使用行列索引获取某个单元格内容
- row_F3 = ws.row(2)[5].value
- col_F3 = ws.col(5)[2].value
-
pip install python-docx
- import docx
- from docx.shared import Inches
-
- doc = docx.Document('test.docx')
- # 读取全部内容
- paras = doc.paragraphs
- # 处理每一个段落(以\n划分段落)
- for p in paras:
- # xxx
-
-
- # 创建对象
- document = Document()
-
- # 添加正文内容并设置部分内容格式
- p = document.add_paragraph('Python 爬虫开发-')
- # 设置内容加粗
- p.runs[0].bold = True
-
- p.add_run('存储实例。').italic = True
-
- # 添加正文,设置'样式'-'明显引用'
- document.add_paragraph('样式-明显引用', style='IntenseQuote')
-
- # 添加图片
- document.add_picture('test.png', width=Inches(1.25))
-
- # 添加表格
- table = document.add_table(rows=1, cols=3)
- hdr_cells = table.rows[0].cells
- hdr_cells[0].text = 'Qty'
-
- # 保存文件
- document.add_page_break()
- document.save('test.docx')
可视化工具:RoboMongo,MongoBooster。
pip install pymongo
- import pymongo
-
- # 创建对象
- client = pymongo.MongoClient()
- # client = pymongo.MongoClient('localhost', 27017)
- # client = pymongo.MongoClient('mongodb://localhost:27017/')
-
- # 进行认证
- db_auth = client.admin
- db_auth.authenticate(username, password)
-
- # 用户验证方法2
- # client = pymongo.MongoClient('mongodb://username:password@localhost:27017/')
-
- # 连接DB数据库
- db = client['DB']
-
- # 连接集合user,集合类似关系数据库的数据表。如果集合不存在,会新建集合user
- user_collection = db.user
-
- # 插入数据,user_info是一个dict
- user_id = user_collection.insert_one(user_info).inserted_id
-
- # 批量添加,user_infos是一个关于dict的列表
- user_collection.insert_many(user_infos)
更新文档
$set:指定键值,不存在则创建。
$unset:从文档中移除指定的键。
$inc:进行算术加减操作,只用于整数、长整数、双精度浮点数。
$rename:重命名字段名称
$push:如果指定的键存在,就向已有的数组末尾添加一个元素。否则创建一个新的数组。
$and、$or:后面跟数组。
$lt、$lte、$gt、$gte、$in、$nin:比较操作符。
$regex:正则表达式
- pip install SQLAlchemy
- pip install pymysql
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker
-
-
- # 创建数据表方法一
- from sqlalchemy import Column, Integer, String, DateTime
- from sqlalchemy.ext.declarative import declarative_base
- Base = declarative_base()
-
- class mytable(Base):
- # 表名
- __tablename__ = 'mytable'
- # 字段,属性
- id = Column(Integer, primary_key=True)
- name = Column(String(50), unique=True)
- age = Column(Integer)
- birth = Column(DateTime)
- class_name = Column(String(50))
-
- Base.metadata.create_all(engine)
-
- # 创建数据表方法二
- from sqlalchemy import Column, MetaData, ForeignKey, Table
- from sqlalchemy.dialects.mysql import (INTEGER, CHAR)
- meta = MetaData()
- myclass = Table('myclass', meta,
- Column('id', INTEGER, primary_key=True),
- Column('name', CHAR(50), ForeignKey(mytable.name)),
- Column('class_name', CHAR(50))
- )
- myclass.create(bind=engine)
-
-
-
- engine = create_engine(
- "mysql+pymysql://root:1990@localhost:3306/test?charset=utf8",
- echo=True)
- DBSession = sessionmaker(bind=engine)
- session = DBSession()
-
- new_data = mytable(name='Li Lei',age=10,birth='2017-10-01',class_name='一年级一班')
- session.add(new_data)
- session.commit()
-
- session.query(mytable).filter_by(id=1).update({ mytable.age : 12})
- session.commit()
-
- get_data = session.query(myclass.name, myclass.class_name).all()
- get_data = session.query(myclass).filter_by(id=1).all()
-
- # 内连接
- get_data = session.query(mytable).join(myclass).filter(mytable.class_name == '三年级二班').all()
-
- # 外连接
- get_data = session.query(mytable).outerjoin(
- myclass).filter(mytable.class_name == '三年级二班').all()
-
- sql = 'select * from mytable '
- session.execute(sql)
-
- session.close()
-
- pip install pyocr
- pip install Pillow
Pillow处理图像。
- from PIL import Image
- from pyocr import tesseract
-
- im = Image.open('1.png')
- im = im.convert('L') # 图片转换为灰色图像, 转化后识别率更高
- # 保存转换后的图片
- im.save("temp.png")
- code = tesseract.image_to_string(im)
- print(code)
- pip install PyQt5
- pip install PyQt5-tools
安装PyQt5-tools后,在Lib/site-packages/pyqt5-tools中找到designer.exe,用其进行界面设计。
将ui文件转换为py文件。
python -m PyQt5.uic.pyuic xxx.ui -o xxx_v.py
tqdm:阿拉伯语中的“process“,对循环或者迭代器,显示进度条。
- from tqdm import tqdm
- import time
- for i in tqdm(range(19), desc="进度条"):
- time.sleep(0.5)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。