《Python爬虫开发与项目实践》读书笔记——文件操作

1. 文件读写

  • 打开文件,语法如下:

open(name[.mode[.buffering]])

  • 文件缓冲区:open函数中第三个可选参数buffering控制着文件的缓冲。、

    1. 如果参数是0, I/O操作就是无缓冲的,直接将数据写到硬盘上。

    2. 如果参数是1, I/O操作就是有缓冲的,数据先写到内存里,只有使用flush函数或者close函数才会将数据更新到硬盘。

    3. 如果参数大于1,则代表缓冲区的大小(单位是字节)。

    4. -1(或者任何负数)代表使用默认缓冲区的大小。

  • 文件使用完毕后必须关闭,因为文件对象会占用操作系统资源,影响系统的IO操作。


2. 操作文件和目录

在python中对文件和目录的操作经常用到os模块和shutil模块。常用方法:

  • 获得当前脚本工作的目录路径:os.getcwd()

  • 返回指定目录下的所有文件和目录名:os.listdir()

  • 删除一个文件:os.remove(filepath)

  • 删除多个空目录:os.removedirs(r"d:\python")

  • 检验给出的路径是否是一个文件:os.path.isfile(filepath)

  • 检验给出的路径是否是一个目录:os.path.isdir(filepath)

  • 判断是否是绝对路径:os.path.isabs()

  • 检查路径是否真的存在:os.path.exists()

  • 分离一个路径的目录名和文件名:os.path.split(r"/home/demo/demo.txt"), 返回结果是一个元组:('/home/qiye', 'qiye.txt')

  • 分离扩展名:os.path.splitext() 测试如上,返回的是一个元组('/home/demo/demo', '.txt)

  • 获取路径名:os.path.dirname(file)

  • 获取文件名:os.path.basename(filepath)

  • 读取和设置环境变量:os.getenv(), os.putenv()

  • 重命名文件或者目录:os.rename(old, new)

  • 创建多级目录:os.makedirs(r"c:\python\test")

  • 创建单个目录:os.makedir("test")

  • 获取文件属性:os.stat(file)

  • 修改文件权限和时间戳:os.chmod(file)

  • 获取文件大写:os.path.getsize(filename)

  • 复制文件夹:shutil.copytree("olddir", "newdir")。olddir和newdir都只能是目录,且newdir必须不存在。

  • 复制文件:shutil.copyfile("oldfile", "newfile"), oldfile和newfile都只能是文件;shutil.copy("oldfile", "newfile"), oldfile只能是文件,newfile可以是文件,也可以是目标目录。

  • 移动文件(目录):shutil.move("oldpos", "newpos")

  • 删除目录:os.rmdir("dir"), 只能删除空目录;shutil.rmtree("dir"), 空目录有内容的目录都可以删。


参考:《Python爬虫开发与项目实践》

你可能感兴趣的:(《Python爬虫开发与项目实践》读书笔记——文件操作)