在编程界,Python已经是名副其实的网红了。曾经有一个学中文的研究生问我怎么学Python,因为他们的课程论文需要用到文本分析,用Python跑数据。我告诉他,看两天语法就可以上手了,不会的可以再查资料。后来这位同学用Python用了半个月就完成了论文数据。因此,Python最大的优势就是简单易学,门槛远低于Java和C++,为非程序员接触代码提供了可能。当然,Python能够成为流行的编程工具,不仅因为它简单易学,还因为Python在各行各业都有成千上万的工具包。举出10多个公职常见的例子,Python都能高效处理。一、Python处理Excel数据可以使用pandas、xlwings、openpyxl等包对Excel进行增删改查、格式化等操作,甚至可以使用Python函数对excel数据进行分析。读取excel表格:importxlwingsasxwwb=xw.Book()#这将创建一个新的工作簿wb=xw.Book('FileName.xlsx')#连接到一个打开的或在当前工作目录中的文件wb=xw.Book(r'C:\path\to\file.xlsx')#在Windows上:使用原始字符串转义反斜杠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文本:importPyPDF2pdfFile=open('example.pdf','rb')pdfReader=PyPDF2.PdfFileReader(pdfFile)print(pdfReader.numPages)page=pdfReader.getPage(0)print(page.extractText())pdfFile.close()提取PDF表单:#提取pdf表单importpdfplumberwithpdfplumber.open("example.pdf")aspdf:page01=pdf.pages[0]#指定页码table1=page01.extract_table()#提取一个singleform#table2=page01.extract_tables()#提取多张表print(table1)3.Python处理Email在Python中可以使用smtplib配合email库实现邮件的自动发送,非常方便。importsmtplibimportemail#负责从email.mime.multipart中收集多个对象importMIMEMultipartfromemail.headerimportHeader#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()#设置发件人邮箱的域名和端口,端口地址为25stp.connect(mail_host,25)#set_debuglevel(1)可以打印出所有与SMTP服务器交互的信息stp.set_debuglevel(1)#登录邮箱,传入参数1:邮箱地址,参数2:邮箱授权码stp.login(mail_sender,mail_license)#发送邮件,传递参数1:发件人邮箱,参数2:收件人邮箱,参数3:将邮件内容格式改为strstp.sendmail(mail_sender,mail_receivers,mm.as_string())print("Mail发送成功")#关闭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()方法创建游标Objectcursor=db.cursor()#使用execute()方法执行SQL查询cursor.execute("SELECTVERSION()")#使用fetchone()方法获取单条数据。data=cursor.fetchone()print("Databaseversion:%s"%data)#关闭数据库连接db.close()5.Python处理批处理文件对于很多办公场景来说,批处理文件一直是个脏活累活,而Python可以帮你脱离苦海。Python中有很多处理系统文件的包,比如sys、os、shutil、glob、path.py等。批量删除不同文件夹中的同名文件夹:importos,shutilimportsysimportnumpyasnpdefarrange_file(dir_path0):fordirpath,dirnames,filenamesinos.walk(dir_path0):if'my_result'indirpath:#print(dirpath)shutil.rmtree(dirpath)批量修改文件后缀名:importosdeffile_rename():path=input("请输入你需要修改的目录(格式为'F:\\test'):")old_suffix=input('请输入您要修改的后缀(需加点):')new_suffix=input('请输入您要修改的后缀(需加点:')file_list=os.listdir(path)对于file_list中的文件:old_dir=os.path.join(path,file)print('currentfile:',file)ifos.path.isdir(old_dir):continueifold_suffix!=os.path.splitext(file)[1]:continuefilename=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库,可以任意控制你的鼠标。控制鼠标左键/右键/双击功能及测试源码:#获取鼠标位置importpyautoguiaspgtry:whileTrue:x,y=pg.position()print(str(x)+""+str(y))#Outputmousepositionif1746
