0
点赞
收藏
分享

微信扫一扫

Python学习笔记-文件操作

caoxingyu 2022-02-02 阅读 67

文件操作相关模块概述

名称说明
io 模块文件流的输入和输出操作
os 模块基本操作系统功能,包括文件操作
glob模块查找符合特定规则的文件路径名
fnmatch 模块使用模式来匹配文件路径名
fileinput 模块处理多个输入文件
filecmp 模块用于文件的比较
cvs 模块用于 csv 文件处理
pickle 和 cPickle用于序列化和反序列化
xml 包用于 XML 数据处理
bz2、gzip、zipfile、zlib、tarfile用于处理压缩和解压缩文件(分别对应不同的算法)

创建文件对象 open()

open()函数用于创建文件对象,基本语法格式如下:
open(文件名[,打开方式])

基本的文件写入操作

文本文件的写入一般就是三个步骤:

  1. 创建文件对象
  2. 写入数据
  3. 关闭文件对象

write()/writelines()写入数据

write(a):把字符串 a 写入到文件中
writelines(b):把字符串列表写入文件中,不添加换行符

close()关闭文件流

由于文件底层是由操作系统控制,所以我们打开的文件对象必须显式调用 close()方法关闭文件对象。当调用 close()方法时,首先会把缓冲区数据写入文件(也可以直接调用 flush()方法),再关闭文件,释放文件对象。为了确保打开的文件对象正常关闭,一般结合异常机制的 finally 或者 with 关键字实现无论何种情况都能关闭打开的文件对象

with 语句(上下文管理器)

with 关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with 块,都能确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的现场

文本文件的读取

文件的读取一般使用如下三个方法:

  1. read([size])
    从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。
    读取到文件末尾,会返回空字符串。
  2. readline()
    读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。
  3. readlines()
    文本文件中,每一行作为一个字符串存入列表中,返回该列表

CSV 文件的操作

csv(Comma Separated Values)是逗号分隔符文本格式,常用于数据交换、Excel文件和数据库数据的导入和导出

csv.reader 对象和 csv 文件读取

import csv
with open(r"d:\a.csv") as a:
a_csv = csv.reader(a) #创建 csv 对象,它是一个包含所有数据的列表,每一行为一个元素
headers = next(a_csv) #获得列表对象,包含标题行的信息
print(headers)
for row in a_csv: #循环打印各行内容
print(row)

csv.writer 对象和 csv 文件写入

import csv
headers = ["工号","姓名","年龄","地址","月薪"]
rows = [("1001","高淇",18,"西三旗 1 号院","50000"),("1002","高八",19,"西三旗 1 号院","30000")]
with open(r"d:\b.csv","w") as b:
b_csv = csv.writer(b) #创建 csv 对象
b_csv.writerow(headers) #写入一行(标题)
b_csv.writerows(rows) #写入多行(数据)

os 模块-调用操作系统命令

·os.system 可以帮助我们直接调用系统的命令

os 模块下常用操作文件的方法

方法名描述
remove(path)删除指定的文件
rename(src,dest)重命名文件或目录
stat(path)返回文件的所有属性
listdir(path)返回 path 目录下的文件和目录列表

os.path 模块

os.path 模块提供了目录相关(路径判断、路径切分、路径连接、文件夹遍历)的操作

walk()

递归遍历所有文件和目录os.walk()方法:
返回一个 3 个元素的元组,(dirpath, dirnames, filenames), dirpath:要列出指定目录的路径
dirnames:目录下的所有文件夹
filenames:目录下的所有文件

shutil 模块(拷贝和压缩)

shutil 模块是 python 标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等;还可以做文件和文件夹的压缩、解压缩操作。
os 模块提供了对目录或文件的一般操作。shutil 模块作为补充,提供了移动、复制、压缩、解压等操作,这些 os 模块都没有提供

举报

相关推荐

0 条评论