当前位置:   article > 正文

python的各种库介绍_python pyb库

python pyb库

colorama:

 colorama是一个python专门用来在控制台、命令行输出彩色文字的模块,可以跨平台使用。

colorama内部模块:Fore是针对字体颜色,Back是针对字体背景颜色,Style是针对字体格式。

  1. Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
  2. Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
  3. Style: DIM, NORMAL, BRIGHT, RESET_ALL

init()接受一些* * kwargs覆盖缺省行为,

autoreset是自动恢复到默认颜色。

  1. from colorama import init, Fore, Back
  2. init(autoreset=True)
  3. print(Fore.BLUE + "hgg")
  4. print(Fore.YELLOW + Back.RED + "XXXX")
  5. print("hello world")

 

curses

python 中curses封装了c语言的curses。curses是一个在linux/unix下广泛应用的图形函数库,作用是可以在终端内绘制简单的图形用户界面。curses库不支持Windows操作系统,但有一个非正式curses包可以尝试,另外windows平台可以使用Console模块。

curses的名字起源于"cursor optimization",即光标优化。

可以说,curses是Linux终端图形编程的不二选择(比如著名的文字编辑器 vi 就是基于curses编的)。

 

csv相关

python标准库自带CSV模块。

  1. import csv
  2. csvfile = open('csv_test.csv', 'r')
  3. # 以列表形式输出
  4. reader = csv.reader(csvfile)
  5. rows = [row for row in reader]
  6. # 以字典形式输出,第一行作为字典的键
  7. reader = csv.DictReader(csvfile)
  8. for row in reader:
  9. # row 是一个 dict
  10. # 写文件
  11. # 若存在文件,打开csv文件,若不存在即新建文件
  12. # 如不设置newline='',每行数据会隔一行空白行
  13. csvfile = open('csv_test.csv', 'w', newline='')
  14. # 将文件加载到csv对象中
  15. writer = csv.writer(csvfile)
  16. # 写入一行数据
  17. writer.writerow(['姓名', '年龄', '电话'])
  18. # 多行数据写入
  19. data = [
  20. ('小P', '18', '138001380000'),
  21. ('小Y', '22', '138001380000')
  22. ]
  23. writer.writerows(data)
  24. # 关闭csv对象
  25. csvfile.close()

excel相关

python操作excel的有xlrd(xls read),xlwt(xls write)。

  1. pip install xlrd
  2. pip install xlwt
  1. import xlwt
  2. # 新建一个Excel文件
  3. wb = xlwt.Workbook()
  4. # 新建一个Sheet
  5. ws = wb.add_sheet('Python', cell_overwrite_ok=True)
  6. # 定义格式对象
  7. style = xlwt.XFStyle()
  8. # 合并单元格write_merge(开始行, 结束行, 开始列, 结束列, 内容, 格式)
  9. ws.write_merge(0, 0, 0, 5, 'Python', style)
  10. # 写入数据wb.write(行,列,内容)
  11. for i in range(2, 7):
  12. for k in range(5):
  13. ws.write(i, k, i+k)
  14. # Excel公式xlwt.Formula
  15. ws.write(i, 5, xlwt.Formula('SUM(A'+str(i+1)+':E'+str(i+1)+')'))
  16. # 插入图片,insert_bitmap(img, x, y, x1, y1, scale_x=0.8, scale_y=1)
  17. # 图片格式必须为bmp
  18. # x表示行数,y表示列数
  19. # x1表示相对原来位置向下偏移的像素
  20. # y1表示相对原来位置向右偏移的像素
  21. # scale_x,scale_y缩放比例
  22. ws.insert_bitmap('test.bmp', 9, 1, 2, 2, scale_x=0.3, scale_y=0.3)
  23. # 保存文件
  24. wb.save('file.xls')

 

  1. import xlrd
  2. wb = xlrd.open_workbook('file.xls')
  3. # 获取Sheets总数
  4. ws_count = wb.nsheets
  5. # 通过索引顺序获取Sheets
  6. # ws = wb.sheets()[0]
  7. # ws = wb.sheet_by_index(0)
  8. # 通过Sheets名获取Sheets
  9. ws = wb.sheet_by_name('Python')
  10. # 获取整行的值(以列表返回内容)
  11. row_value = ws.row_values(3)
  12. # 获取整列的值(以列表返回内容)
  13. row_col = ws.col_values(3)
  14. # 获得行列数
  15. nrows = ws.nrows
  16. ncols = ws.ncols
  17. # 获取某个单元格内容cell(行, 列)
  18. cell_F3 = ws.cell(2, 5).value
  19. # 使用行列索引获取某个单元格内容
  20. row_F3 = ws.row(2)[5].value
  21. col_F3 = ws.col(5)[2].value

word相关

pip install python-docx
  1. import docx
  2. from docx.shared import Inches
  3. doc = docx.Document('test.docx')
  4. # 读取全部内容
  5. paras = doc.paragraphs
  6. # 处理每一个段落(以\n划分段落)
  7. for p in paras:
  8. # xxx
  9. # 创建对象
  10. document = Document()
  11. # 添加正文内容并设置部分内容格式
  12. p = document.add_paragraph('Python 爬虫开发-')
  13. # 设置内容加粗
  14. p.runs[0].bold = True
  15. p.add_run('存储实例。').italic = True
  16. # 添加正文,设置'样式'-'明显引用'
  17. document.add_paragraph('样式-明显引用', style='IntenseQuote')
  18. # 添加图片
  19. document.add_picture('test.png', width=Inches(1.25))
  20. # 添加表格
  21. table = document.add_table(rows=1, cols=3)
  22. hdr_cells = table.rows[0].cells
  23. hdr_cells[0].text = 'Qty'
  24. # 保存文件
  25. document.add_page_break()
  26. document.save('test.docx')

 

 

mongodb相关

可视化工具:RoboMongo,MongoBooster。

pip install pymongo
  1. import pymongo
  2. # 创建对象
  3. client = pymongo.MongoClient()
  4. # client = pymongo.MongoClient('localhost', 27017)
  5. # client = pymongo.MongoClient('mongodb://localhost:27017/')
  6. # 进行认证
  7. db_auth = client.admin
  8. db_auth.authenticate(username, password)
  9. # 用户验证方法2
  10. # client = pymongo.MongoClient('mongodb://username:password@localhost:27017/')
  11. # 连接DB数据库
  12. db = client['DB']
  13. # 连接集合user,集合类似关系数据库的数据表。如果集合不存在,会新建集合user
  14. user_collection = db.user
  15. # 插入数据,user_info是一个dict
  16. user_id = user_collection.insert_one(user_info).inserted_id
  17. # 批量添加,user_infos是一个关于dict的列表
  18. user_collection.insert_many(user_infos)

更新文档

$set:指定键值,不存在则创建。

$unset:从文档中移除指定的键。

$inc:进行算术加减操作,只用于整数、长整数、双精度浮点数。

$rename:重命名字段名称

$push:如果指定的键存在,就向已有的数组末尾添加一个元素。否则创建一个新的数组。

$and、$or:后面跟数组。

$lt、$lte、$gt、$gte、$in、$nin:比较操作符。

$regex:正则表达式

 

 

 

 

 

 

 

 

 

 

mysql相关

  1. pip install SQLAlchemy
  2. pip install pymysql
  1. from sqlalchemy import create_engine
  2. from sqlalchemy.orm import sessionmaker
  3. # 创建数据表方法一
  4. from sqlalchemy import Column, Integer, String, DateTime
  5. from sqlalchemy.ext.declarative import declarative_base
  6. Base = declarative_base()
  7. class mytable(Base):
  8. # 表名
  9. __tablename__ = 'mytable'
  10. # 字段,属性
  11. id = Column(Integer, primary_key=True)
  12. name = Column(String(50), unique=True)
  13. age = Column(Integer)
  14. birth = Column(DateTime)
  15. class_name = Column(String(50))
  16. Base.metadata.create_all(engine)
  17. # 创建数据表方法二
  18. from sqlalchemy import Column, MetaData, ForeignKey, Table
  19. from sqlalchemy.dialects.mysql import (INTEGER, CHAR)
  20. meta = MetaData()
  21. myclass = Table('myclass', meta,
  22. Column('id', INTEGER, primary_key=True),
  23. Column('name', CHAR(50), ForeignKey(mytable.name)),
  24. Column('class_name', CHAR(50))
  25. )
  26. myclass.create(bind=engine)
  27. engine = create_engine(
  28. "mysql+pymysql://root:1990@localhost:3306/test?charset=utf8",
  29. echo=True)
  30. DBSession = sessionmaker(bind=engine)
  31. session = DBSession()
  32. new_data = mytable(name='Li Lei',age=10,birth='2017-10-01',class_name='一年级一班')
  33. session.add(new_data)
  34. session.commit()
  35. session.query(mytable).filter_by(id=1).update({ mytable.age : 12})
  36. session.commit()
  37. get_data = session.query(myclass.name, myclass.class_name).all()
  38. get_data = session.query(myclass).filter_by(id=1).all()
  39. # 内连接
  40. get_data = session.query(mytable).join(myclass).filter(mytable.class_name == '三年级二班').all()
  41. # 外连接
  42. get_data = session.query(mytable).outerjoin(
  43. myclass).filter(mytable.class_name == '三年级二班').all()
  44. sql = 'select * from mytable '
  45. session.execute(sql)
  46. session.close()

 

 

 

 

 

redis相关

 

 

OCR相关

  1. pip install pyocr
  2. pip install Pillow

Pillow处理图像。

  1. from PIL import Image
  2. from pyocr import tesseract
  3. im = Image.open('1.png')
  4. im = im.convert('L') # 图片转换为灰色图像, 转化后识别率更高
  5. # 保存转换后的图片
  6. im.save("temp.png")
  7. code = tesseract.image_to_string(im)
  8. print(code)

 

GUI库:PyQt5

  1. pip install PyQt5
  2. 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

 

进度条

  1. tqdm:阿拉伯语中的“process“,对循环或者迭代器,显示进度条。

    1. from tqdm import tqdm
    2. import time
    3. for i in tqdm(range(19), desc="进度条"):
    4.    time.sleep(0.5)

     

 

 

 

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/822239
推荐阅读
相关标签
  

闽ICP备14008679号