1. 读写文件

1.1 路径

  • 文件夹路径分隔符,Windows中用 ‘\’,OS X和Linux中用 ‘/’。而且不区分大小写。
  • os.path.join()函数拼接路径:
import os
os.path.join('practice','auto')
  • os.getcwd()函数获取当前工作目录:
import os
os.getcwd()
  • os.chdir()函数改变当前目录:
os.chdir('D:\\py practice\\task')
os.getcwd()
  • os.path

os.path.abspath(path)函数将相对路径转换为绝对路径。

os.path.isabs(path)函数判断是否为绝对路径,是返回True,不是返回False。

os.path.relpath(path,start)函数返回从start路径到path的相对路径的字符串。

os.path.dirname(path)函数返回当前路径的目录名称。

os.path.basename(path)函数返回当前路径的文件名称。

path = 'D:\\py practice\\auto.py'
os.path.dirname(path)         # D:\\py practice
os.path.basename(path)        # auto.py

os.path.exists(path)文件或文件夹存在,返回True,否则返回False。

os.path.isfile(path)是文件,返回True,否则返回False。

os.path.isdir(path)是文件夹,返回True,否则返回False。

1.2 文件及文件夹操作

  • os.makedirs() 创建文件夹
  • os.path.getsize(path) 获取文件的字节数
  • os.listdir(path) 获取文件名字符串的列表
  • open()打开文件
helloFile = open(r'C:\Users\Sandra\Desktop\auto.txt')

read()读取文件内容

readlines()按行读取,得到列表

helloFile = open(r'C:\Users\chong\Desktop\auto.txt')
helloFile.read()           # hello\nhappy dragon boat festival
helloFile.readlines()      # ['hello\n', 'happy dragon boat festival']

w覆盖原有文件,a在原有文件末尾添加文本

write()在末尾要自己添加换行

不要忘记close(),关闭后才能完成

newFile = open(r'C:\Users\chong\Desktop\auto.txt','w')
newFile.write('Zongzi!\n')
newFile.close()newFile = open(r'C:\Users\chong\Desktop\auto.txt','a')
newFile.write('Delicious!\n')
newFile.close()

shelve模块

pprint.pformat()函数

2. 组织文件

2.1 shutil模块

  • shutil.copy(source,destination) 文件复制

如果destination是文件名,那么destination是新文件名称

如果destination是文件夹名,那么将文件复制到destination中

import shutil
shutil.copy(r'C:\Users\Sandra\Desktop\auto.txt',r'C:\Users\Sandra\Desktop\new.txt')  # C:\\Users\\Sandra\\Desktop\\new.txt
shutil.copy(r'C:\Users\Sandra\Desktop\auto.txt',r'C:\Users\Sandra\Desktop\py')  # C:\\Users\\Sandra\\Desktop\\py\\auto.txt
  • shutil.copytree(source,destination) 文件夹复制
  • shutil.move(source,destination) 文件/文件夹移动

如果source和destination都是文件夹且后者存在,相当于移动

如果source和destination都是文件夹且后者不存在,相当于移动且重命名为destination

如果source和destination都是文件,相当于移动且重命名为destination

  • 删除

os.unlink(path) 删文件,path文件名(含后缀),不可恢复

os.rmdir(path) 删文件夹,且文件夹必须为空,不可恢复

shutil.rmtree(path) 删文件夹,不可恢复

send2trash.send2trash(path) ,删进回收站

2.2 遍历目录树

  • os.walk(path),遍历目录树
import os
for folderName, subFolders,fileNames in os.walk(r'C:\Users\Sandra\Desktop\Auto'):print('The current folder is ' + folderName)for subFolder in subFolders:print('Subfolder of '  + folderName+':'+subFolder)for filename in fileNames:print('File Inside '  + folderName+':'+filename)print('')   

2.3 zipfile

  • 压缩

压缩文件new.zip,并向其中添加文件1.txt,'w'会覆盖原有文件,‘a’是添加,压缩方式zipfile.ZIP_DEFLATED

import zipfile
newZip = zipfile.ZipFile('new.zip','w')
newZip.write('1.txt',compress_type=zipfile.ZIP_DEFLATED)
newZip.close()
# 压缩文件夹下所有文件
import zipfile
import os
newZip = zipfile.ZipFile('new.zip','w')
for folderName, subFolders,fileNames in os.walk(r'C:\Users\Sandra\Desktop'):for filename in fileNames:newZip.write(os.path.join(folderName,filename),compress_type=zipfile.ZIP_DEFLATED)
newZip.close()
  • 读取
import zipfile,os
exampleZip = zipfile.ZipFile('new.zip')
exampleZip.namelist()
catInfo = exampleZip.getinfo('what/1.txt')    #文件信息
catInfo.file_size
catInfo.compress_size
exampleZip.close()
  • 解压缩

extractall()解压缩到当前目录,extractall(path)解压到指定文件夹

import zipfile, os
exampleZip = zipfile.ZipFile('new.zip')
exampleZip.extractall('.\zip')
exampleZip.close(

extract()解压单个文件

exampleZip = zipfile.ZipFile('new.zip')
exampleZip.extract('what/1.txt')       #解压单个文件到当前目录
exampleZip.extract('what/1.txt', r'C:\Users\Sandra\Desktop')     #解压单个文件到指定目录
exampleZip.close()

// 电脑里的压缩软件老是好多广告,感觉现在可以卸载了(自信

3. 自动发送电子邮件

smtplib库发送邮件,email库构造邮件格式和内容

#1 先导入相关的库和方法
import smtplib  #导入库
from smtplib import SMTP_SSL  #加密邮件内容,防止中途被截获
from email.mime.text import  MIMEText   #构造邮件的正文
from email.mime.image import MIMEImage  #构造邮件的图片
from email.mime.multipart import MIMEMultipart   #把邮件的各个部分装在一起,邮件的主体
from email.header import Header   #邮件的文件头,标题,收件人
#2 设置邮箱域名、发件人邮箱、邮箱授权码、收件人邮箱
host_server = 'smtp.163.com' #sina 邮箱smtp服务器                 #smtp 服务器的地址
sender_163 = 'pythonauto_emai@163.com'                   #sender_163为发件人的邮箱
pwd = 'DYEPOGLZDZYLOMRI'                    #pwd为邮箱的授权码'DYEPOGLZDZYLOMRI'
#也可以自己注册个邮箱,邮箱授权码'DYEPOGLZDZYLOMRI' 获取方式可参考#http://help.163.com/14/0923/22/A6S1FMJD00754KNP.html
receiver = '********@163.com'
#3 构建MIMEMultipart对象代表邮件本身,可以往里面添加文本、图片、附件等
msg = MIMEMultipart()    #邮件主体
#4 设置邮件头部内容
mail_title = 'python办公自动化邮件'   # 邮件标题
msg["Subject"] = Header(mail_title,'utf-8')  #装入主体
msg["From"] = sender_163           #寄件人
msg["To"] = Header("测试邮箱",'utf-8') #标题
#5 添加正文文本
mail_content = "您好,这是使用python登录163邮箱发送邮件的测试"   #邮件的正文内容
message_text = MIMEText(mail_content,'plain','utf-8')   #构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
msg.attach(message_text)    # 向MIMEMultipart对象中添加文本对象
#6 添加图片
image_data = open('cat.jpg','rb')   # 二进制读取图片
message_image = MIMEImage(image_data.read())  # 设置读取获取的二进制数据
image_data.close()       # 关闭刚才打开的文件
msg.attach(message_image)  # 添加图片文件到邮件信息当中去
# 7 添加附件(excel表格)
atta = MIMEText(open('cat.xlsx', 'rb').read(), 'base64', 'utf-8')   # 构造附件
atta["Content-Disposition"] = 'attachment; filename="cat.xlsx"'  # 设置附件信息
msg.attach(atta)       ## 添加附件到邮件信息当中去
#8 发送邮件
smtp = SMTP_SSL(host_server)       #SSL登录  创建SMTP对象
smtp.login(sender_163,pwd)         ## 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
smtp.sendmail(sender_163,receiver,msg.as_string()) # 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
print("邮件发送成功")
smtp.quit         # 关闭SMTP对象

Python办公自动化 | Task 01 文件自动化处理邮件批量处理相关推荐

  1. 自动化办公:1、文件自动化处理邮件批量处理

    1 文件自动化处理 1.1 读写文件 如何使用python在硬盘上创建.读取和保存文件. 1.1.1 文件与文件路径 文件的两个属性:"路径"和"文件名". 路 ...

  2. Python办公自动化——提取pdf文件中表格并到Excel

    Python办公自动化--提取pdf文件中表格合并到Excel 需求描述 现有一 pdf 文件内容如下,文件中内容主要是表格形式的获奖名单,共158页.现要读取这些表格信息并保存到 excel 文件中 ...

  3. 第19天---python办公自动化---操作PDF文件

    第19天-python办公自动化-操作PDF文件 在Python中,可以使用名为PyPDF2的三方库来读取PDF文件,可以使用下面的命令来安装它. pip install PyPDF2 读取PDF并抽 ...

  4. Python办公自动化实战 01 | Python-docx库:Python与Word的完美结合1

    本文参考(12条消息) Python办公自动化实战 04 | Python-docx库:Python与Word的完美结合_综合案例快速上手_跟风舞烟学编程的博客-CSDN博客_python-docx库 ...

  5. python办公自动化博客_自动化办公 Python 操控 Word

    虽然Word不好用, 但还必须得用它, python-docx是专门用于编辑Word文档的一个工具库, 它有两大用途, 自动化生成word文档 and 自动化修改文档 python word 1. 自 ...

  6. Python办公自动化,对文件进行自由操作

    日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇整理了10个Python中最常用到的文件 ...

  7. python bottle 上传文件_bottle.py 实现批量文件上传

    bottle.py是python的一个Web框架,整个框架只有一个文件,几十K,却自带了路径映射.模板.简单的数据库访问等web框架组件,确实是个可用的框架.初学web开发可以拿来玩玩,其语法简单,部 ...

  8. python自动下载qq文件夹_Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

  9. 如何用Python和hashlib实现文件MD5码的批量存储

    目录 简介: 源代码: 源代码说明: 效果如下所示: 简介: 可以考虑以下几个可能的应用: 如果你需要对文件进行校验或验证,你可以使用MD5码来检查文件是否被篡改或损坏. 如果你需要对文件进行分类或去 ...

最新文章

  1. RDB和AOF的持久化配置
  2. 山西出台法规规范社会力量认养文物 系全国首例
  3. 流式计算新贵Kafka Stream设计详解--转
  4. 微信小程序实现数组排序(向上向下移动)
  5. c语言计算机猜数字100以内,求一个猜数字C语言代码,要求如下 计算机生成一个100以内的随机数,玩家来猜 记录猜的次数,最后打...
  6. 视频异常行为检测算法MPN,在多个数据库上达到SOTA
  7. 又一家药企IPO被拒,原因竟然是……
  8. 【Java从0到架构师】Redis 应用 - Jedis 基本使用、使用缓存的用户登陆、缓存常见问题
  9. mysql查看重复数据结构_mysql 数据库重复数据结构
  10. ubuntu下安装CAJ阅读器
  11. 无线桥接怎么设置网关和dns服务器,斐讯K2路由器怎么设置桥接_斐讯K2无线中继设置教程-192路由网...
  12. word2016 卡顿_word2016经常发生卡顿现象
  13. L1-6 斯德哥尔摩火车上的题
  14. P1500 丘比特的烦恼
  15. iOS开发之响应式编程RAC
  16. 鸿合一体机触屏没反应怎么办_电脑一体机触摸屏没反应 触摸屏电脑一体机常见故障解决方法...
  17. Avro RPC 之 Protocol 定义和代码生成
  18. 瞬时频率函数matlab,Hilbert 变换与瞬时频率
  19. python功率谱,直接法和间接法
  20. 【笔记】OpenSSL 使用

热门文章

  1. matplotlib画图-折线/散点/柱状/条形图
  2. 小米Max 2完美刷成开发版获得root超级权限的流程
  3. GitHub搜索技巧整理
  4. bootstrap, boosting, bagging
  5. “不裁员的微软” 裁员了!网上哀嚎一片!
  6. sql Server STUFF()函数
  7. JS下载PDF、图片时直接下载而不是预览
  8. 小甲鱼零基础学python笔记 P20 python变量简单了解
  9. 如何学习编程、一门编程语言怎么算入门、快速掌握一门编程语言
  10. 知云文献翻译打不开_沙拉查词—— 划线翻译的一股清流