代码如下
"""文件处理""" import os os.path.join('datawhale','docu')#创建文件名称 os.chdir(r'C:UsershuangyanDesktopOfficeAutomation')#改变当前工作目录 os.getcwd()#获取当前工作目录 ###“绝对路径”,总是从根文件夹开始。 ###“相对路径”,相对于程序的当前工作目录。 ###相对路径中,单个句点“.”表示当前目录的缩写,两个句点“..”表示父文件夹。 os.path.abspath('.')#当前路径转化为绝对路径 os.path.isabs('.')#判断是否是绝对路径,返回false os.path.isabs(os.path.abspath('.'))#返回true os.path.dirname(os.getcwd())#返回路径的目录名称 os.path.basename(os.getcwd())#返回路径的文件夹名称 os.path.relpath(os.getcwd(),'C:\Users\')#:返回从C:\Users\到path的相对路径的字符串 os.path.relpath(os.getcwd(),'..') os.path.split(os.getcwd())#同时得到路径的目录名称和文件夹名称 os.getcwd().split('\') os.getcwd().split(os.path.sep)#返回每个文件夹的字符串的列表,os.path.sep为文件分隔符 path = 'D:\Datawhale\python办公自动化\python课程画图.pptx' os.path.exists(path)#判断该路径是否存在 os.path.exists(r'c:users') os.path.isdir(r'c:users')#路径存在且是文件夹则返回true os.path.isdir(r'C:UsershuangyanDesktopOfficeAutomationtest.xlsx') os.path.isfile(r'c:users')#路径存在且是文件则返回true os.path.isfile(r'C:UsershuangyanDesktopOfficeAutomationtest.xlsx') os.makedirs(r'C:UsershuangyanDesktopOfficeAutomationtest')#创建文件夹,若已存在则会报错 ###创建文件夹### path=r'C:UsershuangyanDesktopOfficeAutomationhaha' if os.path.exists(path): print('Exists!') else: os.makedirs(path) print('Succed!') os.path.getsize(os.getcwd())#返回path参数中文件的字节数 os.listdir(os.getcwd())#返回该文件夹中的文件名列表 ###计算该文件夹大小,即计算该文件夹中所有文件大小之和### total_size=0 for filename in os.listdir(os.getcwd()): total_size=total_size+os.path.getsize(os.path.join(os.getcwd(),filename)) print(total_size) path=r'C:UsershuangyanDesktopOfficeAutomationhahahello.txt' hellofile=open(path)#打开文件夹 print(hellofile) hellofile.read()#读取文件,只能读一次 hellofile.readlines()#按行读取,取得一个字符串列表,列表中每个字符串是文本中的一行且以n结束。 hellofile.close() hellofile=open(path,'a')#添加模式 hellofile.write('n再见!!') hellofile.close() hellofile=open(path,'w')#写入模式,会覆盖原有的内容 hellofile.write('n再见!!') hellofile.close() hellofile=open(path) hellofile.readlines() hellofile.close() #保存变量 import shelve shelffile=shelve.open('mydata') cats=['huahua','mimi','guaiguai'] shelffile['cats']=cats shelffile.close() #重新打开 shelffile=shelve.open('mydata')#shelf 值不必用读模式或写模式打开,因为打开后,既能读又能写 type(shelffile) shelffile['cats'] list(shelffile.keys())#就像字典一样, shelf 值有 keys() 和 values() 方法,返回shelf中键和值的类似列表的值。但是这些方法返回类似列表的值,却不是真正的列表,所以应该将它们传递给 list() 函数,取得列表的形式f list(shelffile.values()) shelffile.close() #用 pprint.pformat() 函数保存变量 import pprint cats = [{'name':'Zophie','desc':'chubby'},{'name':'Pooka','desc':'fluffy'}] pprint.pformat(cats)#可以写入字典 fileObj = open('myCats.py','w')#可以写入.py文件 fileObj.write('cats = '+pprint.pformat(cats)+'n') fileObj.close() import myCats myCats.cats myCats.cats[0] myCats.cats[0]['desc'] import shutil #shutil (或称为shell工具)模块中包含一些函数,可以在Python程序中复制、移动、改名和删除文件。 shutil.copy(r'C:UsershuangyanDesktopOfficeAutomationmyCats.py', r'C:UsershuangyanDesktopOfficeAutomationhaha')#将文件mycats复制到haha文件夹中,返回新复制文件绝对路径字符串 shutil.copy(r'C:UsershuangyanDesktopOfficeAutomationmyCats.py', r'C:UsershuangyanDesktopOfficeAutomationhahahaha.py')#将文件mycats复制到haha文件夹中,并重命名为haha.py shutil.copy(r'C:UsershuangyanDesktopOfficeAutomationmyCats.py', r'C:UsershuangyanDesktopOfficeAutomationhahahaha')#haha文件不存在,则自动生成该文件,是一个没有扩展名的文件,慎用 shutil.copytree(r'C:UsershuangyanDesktopOfficeAutomationhaha',r'C:UsershuangyanDesktopOfficeAutomationxixi')#将文件夹完成复制一份命名为xixi,xixi必须不存在 shutil.move(r'C:UsershuangyanDesktopOfficeAutomationpdf版本',r'C:UsershuangyanDesktopOfficeAutomationxixi') shutil.move(r'C:UsershuangyanDesktopOfficeAutomationxixipdf版本',r'C:UsershuangyanDesktopOfficeAutomation')#将pdf版本文件夹剪切到OfficeAutomation下 shutil.move(r'C:UsershuangyanDesktopOfficeAutomationpdf版本',r'C:UsershuangyanDesktopOfficeAutomationwawa')#若wawa不存在,则是移动加重命名 shutil.move(r'C:UsershuangyanDesktopOfficeAutomationwawa',r'C:UsershuangyanDesktopOfficeAutomationpdf版本') shutil.move(r'C:UsershuangyanDesktopOfficeAutomationxixihello.txt',r'C:UsershuangyanDesktopOfficeAutomationhi.txt') #hello.txt移动到OfficeAutomation下并重命名为hi.txt,如果destination中有原来已经存在同名文件,移动后,会被覆写,所以应当特别注意。 os.chdir(r'C:UsershuangyanDesktopOfficeAutomationxixi') os.getcwd() os.listdir() for file in os.listdir(): if file.endswith('.py'):#后缀名 #os.unlink(file)#删除该文件夹中的py文件 print(file) os.listdir() """ 永久性删除 os.unlink(path) : 删除path处的文件。 os.rmdir(path) : 删除path处的文件夹。该文件夹必须为空,其中没有任何文件和文件夹。 shutil.rmtree(path) :删除 path 处的文件夹,它包含的所有文件和文件夹都会被删除。 """ import send2trash#安全删除,删除文件在回收站 send2trash.send2trash(r'C:UsershuangyanDesktopOfficeAutomationxixihaha') """ os.walk()遍历 os.walk() 在循环的每次迭代中,返回三个值: 1)、当前文件夹名称的字符串。 2)、当前文件夹中子文件夹的字符串的列表。 3)、当前文件夹中文件的字符串的列表。 """ for folder,subfolders,filenames in os.walk(r'C:UsershuangyanDesktopOfficeAutomationhaha'): print('The current folder is '+os.path.basename(folder)) for subfolder in subfolders: print('Subfolder of '+os.path.basename(folder)+' : '+subfolder) for filename in filenames: print('File inside '+os.path.basename(folder)+' : '+filename) print('') #压缩 后补 """自动发邮件""" #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 = 'xxx@163.com' #sender_163为发件人的邮箱 pwd = 'xxxx' #pwd为邮箱的授权码'DYEPOGLZDZYLOMRI' receiver = 'xxxx@qq.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(r'C:UsershuangyanDesktopOfficeAutomation图片周杰伦.jpg','rb') # 二进制读取图片 message_image = MIMEImage(image_data.read()) # 设置读取获取的二进制数据 image_data.close() # 关闭刚才打开的文件 msg.attach(message_image) # 添加图片文件到邮件信息当中去 # 7 添加附件 atta = MIMEText(open(r'C:UsershuangyanDesktopOfficeAutomationhi.txt', 'rb').read(), 'base64', 'utf-8') # 构造附件 atta["Content-Disposition"] = 'attachment; filename="hi.txt"' # 设置附件信息 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对象
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)