知乎上有个热门问题,Python 未来会成为大众办公常用编程工具吗?
在编程世界里,Python已经是名副其实的网红了。曾经一个学汉语言的研究生,问我怎么学Python,因为他们课程论文里需要用到文本分析,用Python来跑数据。我和他说,你看两天语法,就可以上手开干,不会的再查资料。后来这位同学半个月就用Python把论文数据搞好了。
所以Python最大优势在于容易学,门槛比Java、C++低非常多,给非程序员群体提供了用代码干活的可能性。当然Python能成为大众编程工具,不光光是因为易学,还因为Python有成千上万的工具包,遍布各行各业。
举10几个办公自动化常见的例子,Python都能高效处理。
1、Python处理Excel数据
可以使用pandas、xlwings、openpyxl等包来对Excel进行增删改查、格式调整等操作,甚至可以使用Python函数来对excel数据进行分析。
读取excel表格
importxlwings asxw
wb = xw.Book # this will create a new workbook
wb = xw.Book( ‘FileName.xlsx’) # connect to a file that is open or in the current working directory
wb = xw.Book( r’C:\path\to\file.xlsx’) # on Windows: use raw strings to escape backslashes
将matplotlib绘图写入excel表格
importmatplotlib.pyplot asplt
importxlwings asxw
fig = plt.figure
plt.plot([ 1, 2, 3])
sheet = xw.Book.sheets[ 0]
sheet.pictures.add(fig, name= ‘MyPlot’, update= True)
2、Python处理PDF文本
PDF几乎是最常见的文本格式,很多人有各种处理PDF的需求,比如制作PDF、获取文本、获取图片、获取表格等。Python中有PyPDF、pdfplumber、ReportLab、PyMuPDF等包可以轻松实现这些需求。
提取PDF文字
importPyPDF2
pdfFile = open( ‘example.pdf’, ‘rb’)
pdfReader = PyPDF2.PdfFileReader(pdfFile)
print(pdfReader.numPages)
page = pdfReader.getPage( 0)
print(page.extractText)
pdfFile.close
提取PDF表格
# 提取pdf表格
importpdfplumber
withpdfplumber.open( “example.pdf”) aspdf:
page01 = pdf.pages[ 0] #指定页码
table1 = page01.extract_table #提取单个表格
# table2 = page01.extract_tables#提取多个表格
print(table1)
3、Python处理Email
在Python中可以使用smtplib配合email库,来实现邮件的自动化传输,非常方便。
importsmtplib
importemail
# 负责将多个对象集合起来
fromemail.mime.multipart importMIMEMultipart
fromemail.header importHeader
# SMTP服务器,这里使用163邮箱
mail_host = “smtp.163.com”
# 发件人邮箱
mail_sender = “******@163.com”
# 邮箱授权码,注意这里不是邮箱密码,如何获取邮箱授权码,请看本文最后教程
mail_license = “********”
# 收件人邮箱,可以为多个收件人
mail_receivers = [ “
@qq.com", "
@outlook.com”]
mm = MIMEMultipart( ‘related’)
# 邮件正文内容
body_content = “”“你好,这是一个测试邮件!”“”
# 构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
message_text = MIMEText(body_content, “plain”, “utf-8”)
# 向MIMEMultipart对象中添加文本对象
mm.attach(message_text)
# 创建SMTP对象
stp = smtplib.SMTP
# 设置发件人邮箱的域名和端口,端口地址为25
stp.connect(mail_host, 25)
# set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
stp.set_debuglevel( 1)
# 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
stp.login(mail_sender,mail_license)
# 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
stp.sendmail(mail_sender, mail_receivers, mm.as_string)
print( “邮件发送成功”)
# 关闭SMTP对象
stp.quit
4、Python处理数据库
数据库是我们常用的办公应用,Python中有各种数据库驱动接口包,支持对数据库的增删改查、运维管理工作。比如说pymysql包对应MySQL、psycopg2包对应PostgreSQL、pymssql包对应sqlserver、cxoracle包对应Oracle、PyMongo包对应MongoDB等等。
对MySQL的连接查询
importpymysql
# 打开数据库连接
db = pymysql.connect(host= ‘localhost’,
user= ‘testuser’,
password= ‘test123’,
database= ‘TESTDB’)
# 使用 cursor 方法创建一个游标对象 cursor
cursor = db.cursor
# 使用 execute 方法执行 SQL 查询
cursor.execute( “SELECT VERSION”)
# 使用 fetchone 方法获取单条数据.
data = cursor.fetchone
print( "Database version : %s "% data)
# 关闭数据库连接
db.close
5、Python处理批量文件
对很多办公场景来说,批量处理文件一直是个脏活累活,Python可以帮你脱离苦海。Python中有很多处理系统文件的包,比如sys、os、shutil、glob、path.py等等。
批量删除不同文件夹下的同名文件夹
importos,shutil
importsys
importnumpy asnp
defarrange_file(dir_path0):
fordirpath,dirnames,filenames inos.walk(dir_path0):
if’my_result’indirpath:
# print(dirpath)
shutil.rmtree(dirpath)
批量修改文件后缀名
importos
deffile_rename:
path = input( “请输入你需要修改的目录(格式如’F:\test’):”)
old_suffix = input( ‘请输入你需要修改的后缀(需要加点.):’)
new_suffix = input( ‘请输入你要改成的后缀(需要加点.):’)
file_list = os.listdir(path)
forfile infile_list:
old_dir = os.path.join(path, file)
print( ‘当前文件:’, file)
ifos.path.isdir(old_dir):
continue
ifold_suffix != os.path.splitext(file)[ 1]:
continue
filename = os.path.splitext(file)[ 0]
new_dir = os.path.join(path, filename + new_suffix)
os.rename(old_dir, new_dir)
if__name__ == ‘
main
’:
file_rename
6、Python控制鼠标
这是很多人的需求,实现对鼠标的自动控制,去做一些流水线的工作,比如软件测试。
Python有个pyautogui库可以任意地去控制你的鼠标。
控制鼠标左击/右击/双击函数以及测试源码
# 获取鼠标位置
importpyautogui aspg
try:
whileTrue:
x, y = pg.position
print(str(x) + " "+ str(y)) #输出鼠标位置
if1746< x < 1800and2< y < 33:
pg.click #左键单击
if1200< x < 1270and600< y < 620:
pg.click(button= ‘right’) #右键单击
if1646< x < 1700and2< y < 33:
pg.doubleClick #左键双击
exceptKeyboardInterrupt:
print( “\n”)
7、Python控制键盘
同样的,Python也可以通过pyautogui控制键盘。
键盘写入
importpyautogui
#typewrite无法输入中文内容,中英文混合的只能输入英文
#interval设置文本输入速度,默认值为0
pyautogui.typewrite( ‘你好,world!’,interval= 0.5)
8、Python压缩文件
压缩文件是办公中常见的操作,一般压缩会使用压缩软件,需要手动操作。
Python中有很多包支持文件压缩,可以让你自动化压缩或者解压缩本地文件,或者将内存中的分析结果进行打包。比如zipfile、zlib、tarfile等可以实现对.zip、.rar、.7z等压缩文件格式的操作。
压缩文件
importzipfile
try:
withzipfile.ZipFile( “c://test.zip”,mode= “w”) asf:
f.write( “c://test.txt”) #写入压缩文件,会把压缩文件中的原有覆盖
exceptException ase:
print( “异常对象的类型是:%s”%type(e))
print( “异常对象的内容是:%s”%e)
finally:
f.close
解压文件
importzipfile
try:
withzipfile.ZipFile( “c://test.zip”,mode= “a”) asf:
f.extractall( “c://”,pwd= b"root") ##将文件解压到指定目录,解压密码为root
exceptException ase:
print( “异常对象的类型是:%s”%type(e))
print( “异常对象的内容是:%s”%e)
finally:
f.close
9、Python爬取网络数据
python爬虫应该是最受欢迎的功能,也是广大Python爱好者们入坑的主要的原因。
Python中有非常多的包支持爬虫,而爬虫包又分为抓取、解析两种。
比如说requests、urllib这种是网络数据请求工具,也就是抓取包;xpath、re、bs4这种会对抓取下来的网页内容进行解析,称为解析包。
爬取百度首页图片,并保存到本地
# 导入urlopen
fromurllib.request importurlopen
# 导入BeautifulSoup
frombs4 importBeautifulSoup asbf
# 导入urlretrieve函数,用于下载图片
fromurllib.request importurlretrieve
# 请求获取HTML
html = urlopen( “http://www.baidu.com/”)
# 用BeautifulSoup解析html
obj = bf(html.read, ‘html.parser’)
# 从标签head、title里提取标题
title = obj.head.title
# 只提取logo图片的信息
logo_pic_info = obj.find_all( ‘img’,class_= “index-logo-src”)
# 提取logo图片的链接
logo_url = “https:”+logo_pic_info[ 0][ ‘src’]
# 使用urlretrieve下载图片
urlretrieve(logo_url, ‘logo.png’)
10、Python处理图片图表
在Python中处理图像的包有scikit Image、PIL、OpenCV等,处理图表的包有matplotlib、plotly、seaborn等。
对图片进行黑白化处理
fromPIL importImage
fromPIL importImageEnhance
img_main = Image.open( u’E:/login1.png’)
img_main = img_main.convert( ‘L’)
threshold1 = 138
table1 = []
fori inrange( 256):
ifi < threshold1:
table1.append( 0)
else:
table1.append( 1)
img_main = img_main.point(table1, “1”)
img_main.save( u’E:/login3.png’)
生成统计图表
importnumpy asnp
importmatplotlib.pyplot asplt
N = 5
menMeans = ( 20, 35, 30, 35, 27)
womenMeans = ( 25, 32, 34, 20, 25)
menStd = ( 2, 3, 4, 1, 2)
womenStd = ( 3, 5, 2, 3, 3)
ind = np.arange(N) # the x locations for the groups
width = 0.35# the width of the bars: can also be len(x) sequence
p1 = plt.bar(ind, menMeans, width, yerr=menStd)
p2 = plt.bar(ind, womenMeans, width,
bottom=menMeans, yerr=womenStd)
plt.ylabel( ‘Scores’)
plt.title( ‘Scores by group and gender’)
plt.xticks(ind, ( ‘G1’, ‘G2’, ‘G3’, ‘G4’, ‘G5’))
plt.yticks(np.arange( 0, 81, 10))
plt.legend((p1[ 0], p2[ 0]), ( ‘Men’, ‘Women’))
plt.show
小结
总之Python会成为大众化的编程语言,帮助到更多需要的人。
-END-
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!
????
(
安全链接,放心点击
)
????Python学习大礼包????
????Python学习路线汇总????
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
(全套教程文末领取哈)
????Python必备开发工具????
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
????Python实战案例????
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
????Python书籍和视频合集????
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
????Python面试刷题????
????Python副业兼职路线????
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以点击链接免费领取
或者
保存图片到
wx扫描二v码免费领取
【
保证100%免费
】
????
(
安全链接,放心点击
)