在MOOC上,学习了北京理工大学嵩天老师的Python语言程序设计,此为学习笔记记录,备查,备翻阅复习。
Python 库纵览
Python语言解释器开源、开放。学习–实践–贡献
Python库官方索引:PyPI
Python库通用安装方法
Python编程依赖于各种已发布的库和其中函数或对象
三种方法
- Python库的自定义安装,根据来源提示下载安装
- Python库的工具安装, pip在线安装
- Python库的文件安装,.whl文件安装
自定义安装numpy库
自定义安装,下载.exe安装即可
pip安装py2exe库
命令行输入
pip install [库名称]
pip uninstall
pip list
pip show
pip search
pip help install
pip install py2exe
pip install -U [py2exe] #进行版本更新
pip uninstall py2exe
pip list #显示库列表,其中的wheel库是基于.whlwen文件进行安装的
pip list --outdated # 列出可更新的库
pip show [py2exe]
# pip search [关键字],在Pypi中搜索名称或摘要中包含关键字的库
pip search [py2exe]
利用库的.whl文件安装库
示例安装pywin32库
根据老师示例所用的电脑系统,下载 pywin32-219-cp34-none-win_amd64.whl文件
然后安装命令是,命令行输入
pip install pywin32-219-cp34-none-win_amd64.whl
推荐库安装方法
优先是pip方法
部分库不成功时,不需要纠结,
找到库的主站,进行库的自定义安装。
如果扔失败,找到库的.whl文件安装。
以上三种方法的依次尝试,相信可以安装所有库。
目录文件的操作
自带库 os库
os.getcwd()
os.listdir(path)
os.remove()
os.removedir(path)
os.chdir(path)
os.mkdir(path)
os.rmdir(path)
os.rename(oldname, newname)
os库的子库 os.path
Os.path.isfile()
Os.path.isdir()
Os.path.exists()
Os.path.splitext()# 分离扩展名
Os.path.split()
Os.path.dirname()
Os.path.basename()
Os.path.getsize()
Os.path.join(path, name)
os.walk函数非常重要
os.walk(path)用于遍历一个目录,返回一个三元组。
root, dirs, files = os.walk(path)
其中root是字符串,dirs和files是列表类型,表示root中的所有目录和所有文件。
举例:打印一个目录下的所有文件信息
import os
path = input(“请输入一个路径:”)
for root,dirs,files in os.walk(path):
for name in files:
print(os.path.join(root, name))
举例:将文件夹下的所有文件名字后增加一个字符串_py
import os
path = input("输入一个路径:")
for root,dirs,files in os.walk(path):
for name in files:
fname, fext = os.path.splitext(name)
os.rename(os.path.join(root, name),
os.path.join(root,fname+'_py'+fext))
程序定时执行
需要sched库进行任务调度
sched.scheduler()用于创建一个调度任务。
当需要对一个任务进行时间调度时,用这个库scheduler.enter(delay,?priority,?action,?argument = ())
scheduler.run()运行调度任务中的全部调度事件
举例:定时执行函数 func_sched.py
import sched, time
def print_time(msg = "default"):
print(“当前时间”, time.time(), msg)
# 生成一个调度任务,下面有三个调度事件
s = sched.scheduler(time.time, time.sleep)
print(time.time())
s.enter(5,1,print_time, argument = ('延迟五秒,优先级1',))
s.enter(3,2,print_time, argument = ('延迟3秒,优先级2',))
s.enter(3,1,print_time, argument = ('延迟3秒,优先级1',))
s.run()
print(time.time)
可执行程序的转换
转化.py为.exe文件。使得pythonh程序在没有python安装环境的情况下运行python程序的功能。
该库使用步骤只有4步
- 确认python程序是可执行的。这里以上述的func_sched.py为例。
- 写一个发布脚本 setup.py。只有三行代码,只需要修改第三行中的python程序的文件名。
- 命令行下运行 python setup.py py2exe,需要确保当前命令行的执行目录、以及setup.py 以及func_sched.py在同一个目录中。
- 查看运行结果,生成两个结果,dist 包含发布的exe程序以及相关的依赖库,__pycache__是过程文件,可以删除。注意,目录dist需要整体拷贝到其他系统使用,因为其中包含了exe运行的依赖库,不能只拷贝exe文件。
# setup.py
from distutils.core import setup
import py2exe
setup(console = ['func_sched.py'])
office 文件操作函数库
Python语言可以较好的处理office文档,主要掌握以下四个函数库。
- Xlwt (pip install xlwt)
- Xlrd (pip install xlrd)
- Python-docx (需要一个lxml wheel安装,建议该库通过安装包的方式安装)
- Python-pptx ()
excel
xlrd 和xlwt
#
import xlrd
path = input("请输入excel文件路径")
workbook = xlrd.open_workbook(path)
sheet = workbook.sheet_by_index(0)
for row in range(sheet.nrows):
print()
for col in range(sheet.ncols):
print("%7s"%sheet.row(row)[col].value, '\t', end = '')
#
import xlwt
word
Python-docx,
先用lxml wheel的安装包安装lxml,然后再用pip安装Python-docx库。
新建文档:
添加文本:
更改项目符号:
添加标题:
添加图片:
字体设置:设置加粗、字号、颜色
创建表格:
遍历某一单元格:
对单元格操作:
from docx import Document
from docx.shared import Inches
document = Document()
document.add_heading('Document Title',0)
p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True
document.add_heading('Heading, level 1', level = 1)
document.add_paragraph('first item in unordered list', style = 'ListBullet')
document.add_paragraph('first item in unordered list', style = 'ListNumber')
document.add_picture('monty-truth.png', width-Inches(1.25))
table = document.add_table(rows = 1, cols = 3)
hdr_cells - table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
row_cells - table.add_rows().cells
row_cells[0].text = str(item.qty)
row_cells[1].text = str(item.id)
row_cells[2].text = item.desc
document.add_page_break()
document.save('demo.docx')
Powerpoint 编程
新建幻灯片
在幻灯片的固定位置插入某一大小的图片……
使用Presentation 表示ppt对象
#生成一个简单地PPT标题页面
from pptx import Presentation
prs = Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "Hello, World!"
subtitle.text = "Python-pptx was here!"
prs.save('test.pptx')
# 生成一个简单地PPT内容页面
from pptx import Presentation
prs = Presentation()
bullet_slide_layout = prs.slide_layout[1]
slide = prs.slides.add_slide(bullet_slide_layout)
shapes = slide.shapes
title_shape = shapes.title
body_shape = shapes.placeholders[1]
title_shape.text = "Adding a Bullet Slide"
tf = body_shape.text_frame
tf.text = "Find the bullet slide layout"
p = tf.add_paragraph()
p.text = "Use _TextFrame.text for first bullet"
p.level = 1
p = tf.add_paragraph()
p.text = "Use _TextFrame.add_paragraph() for subsequent bullets"
p.level = 2
prs.save("text.pptx")
# 生成一个带有图片、文本框和图形的PPT内容页面
from pptx import Presentation
from pptx.util import Inches
img_path = "monty-trtuth.png"
prs = Presentation()
blank_slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(blank_slide_layout)
left = top = Inches(1)
pic = slide.shapes.add_picture(img_path, left, top)
left = Inches(5)
height = Inches(5.5)
pic = slide.shape.add_picture(img_path, left, top, height = height)
prs.save("text.pptx")