Python学习-文件操作(IO技术)

这篇博客详细介绍了Python的文件操作,包括文本文件的写入与读取,如open()函数、write()、writelines()、read()等方法,以及常用编码介绍。此外,还探讨了进制文件处理、文件对象属性和方法,如使用pickle序列化、CSV文件操作,以及os和os.path模块的功能,如文件和目录的操作、递归遍历文件等。
摘要由CSDN通过智能技术生成

目录

一.文本文件的写入

1.创建文件对象open()

2.文本文件的写入

3.常用编码介绍

4.write()/writelines()写入数据

5.close()关闭文件流

6.with 语句(上下文管理器)

7.文本文件的读取

二.进制文件的读取和写入

三.文件对象的常用属性和方法

1.文件任意位置操作

2.使用 pickle 序列化

3.CSV 文件的操作

csv.reader 对象和 csv 文件读取

csv.writer 对象和 csv 文件写入 

4.os 和 os.path 模块

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

4.2 os 模块-文件和目录操作

4.3 os.path 模块

5.walk()递归遍历所有文件和目录

6.shutil 模块(拷贝和压缩)

7.递归算法


一.文本文件的写入

1.创建文件对象open()

open()函数用于创建文件对象,基本语法格式如下:

                                       open(文件名[,打开方式])

如果只是文件名,代表在当前目录下的文件。文件名可以录入全路径,比如:D:\a\b.txt。为了减少“\”的输入,可以使用原始字符串:r“d:\b.txt”。示例如下:

                                      f = open(r"d:\b.txt","w")

文本文件对象和二进制文件对象的创建: 

如果我们没有增加模式“b”,则默认创建的是文本文件对象,处理的基本单元是“字 符”。如果是二进制模式“b”,则创建的是二进制文件对象,处理的基本单元是“字节”。

f = open(r"d:\b.txt","w")
f=open(r"d:\Python\PythonClass\file\b.txt","w")  #此处要注意加引号,否则会报错!

2.文本文件的写入

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

1. 创建文件对象

2. 写入数据

3. 关闭文件对象

f=open(r"a.txt","w")
s="林海馨真好看!"
f.write(s)
f.close()

3.常用编码介绍

在操作文本文件时,经常会操作中文,这时候就经常会碰到乱码问题。

常用编码之间的关系如下:

4.write()/writelines()写入数据

write(a):把字符串 a 写入到文件中

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

f=open(r"b.txt","w",encoding="utf-8")
s=["林海馨\n","任国亮\n","张倩\n"]
f.writelines(s)

5.close()关闭文件流

由于文件底层是由操作系统控制,所以我们打开的文件对象必须显式调用 close()方法 关闭文件对象。当调用 close()方法时,首先会把缓冲区数据写入文件(也可以直接调用 flush() 方法),再关闭文件,释放文件对象。

为了确保打开的文件对象正常关闭,一般结合异常机制的 finally 或者 with 关键字实现 无论何种情况都能关闭打开的文件对象。

try:
    f=open(r"c.txt","w",encoding="utf-8")
    s=["林海馨","富婆!"]
    f.writelines(s)
except BaseException as e:
    print("文件创建错误!")
finally:
    f.close()

6.with 语句(上下文管理器)

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

with open(r"d.txt","w",encoding="utf-8") as f:
    s=["林海馨\n","富婆!\n"]
    f.writelines(s)

7.文本文件的读取

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

1. read([size])

从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。 读取到文件末尾,会返回空字符串。

2. readline()

读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。

3. readlines()

文本文件中,每一行作为一个字符串存入列表中,返回该列表

with open(r"e.txt","r",encoding="utf-8") as f: #此处要设置为只读模式,否则会报错
    print(f.read(4))

4.enumerate()函数 

enumerate()函数可以使原本文件中的每行内容都加上索引

eg:为文本文件每一行的末尾增加行号

with open("f.txt","r",encoding="utf-8") as f:
    lines= f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值