python学习一——Document Processing and Email Automation

文件处理与邮件自动化

1.标准库OS

os常用的操作函数如下图
python学习一——Document Processing and Email Automation_第1张图片
1.路径操作

  • os.path.relpath(path,start):返回从start路径到path的相对路径的字符串。如果没提供start,就使用当前工作目录作为开始路径。

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

  • os.path.basename(path):返回当前路径的文件名称

  • 如果同时需要一个路径的目录名称和基本名称,可以调用os.path.split(),获得者两个字符串的元组。

2.路径有效性检查
如果提供的路径不存在,很多Python函数就会崩溃并报错。os.path模块提供了一些函数,用于检测给定的路径是否存在,以及判定是文件还是文件夹。

  • os.path.exists(path):如果path参数所指的文件或文件夹存在,则返回True,否则返回False。

  • os.path.isfile(path):如果path参数存在,并且是一个文件,则返回True,否则返回False。

  • os.path.isdir(path):如果path参数存在,并且是一个文件夹,则返回True,否则返回False。
    3.文件及文件夹操作

  • 用os.makedirs()创建新文件夹

  • os.path.getsize(path):返回path参数中文件的字节数。

  • os.listdir(path):返回文件名字符串的列表,包含path参数中的每个文件。

  • 如果想知道目录下所有文件的总字节数,可以同时使用 os.path.getsize() 和 os.listdir()

2.文件读写

文件对象可以通过Python内置的open函数得到,完整的语法如下。

open(file,mode=r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)

open函数有8个参数,常用前4个,除了file参数外,其他参数都有默认值。file指定了要打开的文件名称,应包含文件路径,不写路径则表示文件和当前py脚本在同一个文件夹。buffering用于指定打开文件所用的缓冲方式,默认值-1表示使用系统默认的缓冲机制。文件读写要与硬盘交互,设置缓冲区的目的是减少CPU操作磁盘的次数,延长硬盘使用寿命。encoding用于指定文件的编码方式,如GBK、UTF-8等,默认采用UTF-8,有时候打开一个文件全是乱码,这是因为编码参数和创建文件时采用的编码方式不一样。
mode指定了文件的打开模式。打开文件的基本模式包括r、w、a,对应读、写、追加写入。附加模式包括b、t、+,表示二进制模式、文本模式、读写模式,附加模式需要和基本模式组合才能使用,如“rb”表示以二进制只读模式打开文件,“rb+”表示以二进制读写模式打开文件。
要注意的是,凡是带w的模式,操作时都要非常谨慎,它首先会清空原文件,但不会有提示。凡是带r的文件必须先存在,否则会因找不到文件而报错

读取文件
有了File对象,我们就可以开始从它读取内容。

  • read():以原格式返回全部文本

  • readline(): 只返回第一行文本

  • readlines(): 以列表的格式返回全部文本,文本的第几行对应列表的第几个元素

写入文件
需要用“写模式”‘w’和“添加模式”'a’打开一个文件,而不能用读模式打开文件。
“写模式”将覆写原有的文件,从头开始。“添加模式”将在已有文件的末尾添加文本

baconFile = open('bacon.txt','w')
baconFile.write('Hello world!\n')
baconFile.close()  #注意,关闭后,才能完成写入,从txt文件中看到写入的内容。
baconFile = open('bacon.txt','a')
baconFile.write('Bacon is not a vegetable.')
baconFile.close()  #注意,关闭后,才能完成写入,从txt文件中看到写入的内容。

【案例】统计字母出现频率

from collections import Counter
my_list = []
punctuation=',.!?\,。!?、()【】<>《》=:+-*“”...\n'
with open('bacon.txt','r') as f:
    for line in f:
        for word in line:
            if word not in punctuation:
                my_list.append(word)

counter = Counter(my_list)
counter

3.组织文件

shutil模块
shutil(或称为shell工具)模块中包含一些函数,可以在Python程序中复制、移动、改名和删除文件。要使用shutil的函数,首先需要import shutil
python学习一——Document Processing and Email Automation_第2张图片

4.压缩文件

zipfile.ZipFile(‘filename.zip’, ‘w’) :以写模式创建一个压缩文件

5.文件查找模块

  • glob
  • fnmatch
  • hashlib
  • 6.自动发送邮件

你可能感兴趣的:(学习,大数据)