Python 之文件操作

文件操作

计算机中的文件是指,相关记录或存放在一起的数据集合。

一、文本输入和输出

open()函数
用来创建一个文件对象并使用这个对象的read()和write()方法读写数据

file_object = open(file_path, mode)
# mode为文件的打开方式

文件的打开模式

mode描述
“r”只读方式打开文件。文件的指针将会放在文件开头
“w”写入方式打开一个文件,如果文件已存在,文件的内容会被销毁
“a”追加方式打开一个文件,会在文件的末尾追加本次写入的内容
“rb”只读二进制的方式打开文件,文件指针将会放在文件的开头
“wb”只写二进制的方式打开文件,存在则覆盖,不存在则创建
“ab”追加二进制的方式打开文件,文件指针在结尾,不存在则创建
“r+”读写方式打开文件,文件指针会放在文件的开头
“w+”读写方式打开文件,文件存在则覆盖,不存在创建新文件
“a+”读追加方式打开文件,文件指针会放在文件的结尾,不存在则创建
“rb+”二进制格式打开一个文件用于读写,文件指针将会放在文件的开头
“wb+”二进制格式打开一个文件用于读写。已存在则覆盖,不存在则创建
“ab+”二进制格式打开一个文件用于追加。已存在则覆盖,不存在则创建

文件操作的基础模式有三种:
1、r模式为read(默认操作)
2、w模式为write
3、a模式为append

文件读写内容格式有两种:
1、t模式为text
2、b模式为bytes
需要注意的是:t、b这两种模式均不能单独使用,都需要r/w/a之一连用


二、操作文本文件

打开文件得到的文件对象包含了读写数据和关闭文件的方法
是_io.TextIOWrapper类的一个实例

实例方法描述
read(number: int): str从文件返回指定个数的字符。如果忽略参数,默认读取文件中的所有剩余内容
read(): str作为字符串返回文件的下一行
readlines(): list返回文件中剩余行的列表
write(s: str): None向文件中写入字符串
close(): None关闭文件

三、文本文件的基本操作

简单实例:

# 文本文件的基本操作
import os

file_path = r"D:\Python\练习\1.txt"
# 常规打开方式:
file = open(file_path, 'r',encoding='UTF-8')
# 让文件路径中的分隔符兼容操作不同的系统
# file = file_path.replace("/",os.sep)
print(file.read())  
print(file.read(100))					# 读取100个字符(建议文件庞大时使用)
file.close()                            # 打开的文件对象必须最后关闭

打开文件关闭文件操作:

with open(file_path, "r") as file:
    # 用with打开文件对象,不需要我们手动调用close方法,会自动调用
    print(file.read())

另一种书写方法:

try:
    file = open(file_path, "r")
    print(file.read())                      # 文件比较小的时候,可以直接读取整个文件的内容
finally:                                    # 不管try的中途是否有错误,都会执行最后的finally语句
    file.close()                            # 打开的文件对象必须最后关闭

补充:
python 读取文件时报错:
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 8: illegal multibyte sequence

解决方法:用python自带的open()函数打开文件时,出现了上述错误。很明显解码格式不对,只需要在open()函数参数中指定解码格式即可。

# 方法一:
file = open('/path/name','r', encoding='UTF-8')
# 方法二:
file = open('/path/name','rb')

四、补充函数readline()

readline() 是以列表的方式返回读取到的每一行内容。

具体实例:
readline()的三种常用操作方式:

# readline()

file_path = r"D:\Python\练习\1.txt"
# 常规打开方式:
file = open(file_path, 'r',encoding='UTF-8')

# 1
print(file.readline())          # 以列表的方式读取到每一行内容

# 2
# 用for循环遍历查看,每一行
for line in file:               # for line in file.readlines() 
    print(line,end="")

# 3
line = file.readline()     	    # 读取文件中的一行
while line:
    print(line, end="")
    line = file.readline()

file.close()                    # 打开的文件对象必须最后关闭
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值