【Python速通6】python文件处理(基于Java语言的对比及扩展)

六、python的文件处理

系列目录导航:

章节名称重要程度
1、python语言基本元素**
2、基本数据类型***
3、程序控制结构*****
4、函数和代码的复用*****
5、组合数据类型*****
6、python文件处理***
7、Python程序设计方法**
8、python计算生态***

本期重点:

文本文件和二进制文件
文件打开和关闭的方法
文件读写的方法

1、文件的使用

1.1 文件的类型

文件是存储在辅助存储器上的一组数据序列,是数据的集合和抽象

(1)文本文件:由单一特定编码的字符组成,人类可读

(2)二进制文件:直接由01序列组成,没有统一的字符编码

1.2 文件的打开与关闭

Python通过open()函数打开一个文件,并返回一个操作这个文件的变量

文件变量名=open(文件路径,打开模式....)

打开模式如下,前四种和后三种可以组合使用

打开模式

含义

'r'

只读模式,若文件不存在会报错

'w'

覆盖写模式,即重写

'x'

创建写模式,若文件已存在会报错

'a'

追加写模式

'b'

二进制文件模式

't'

文本文件模式

'+'

增加同时读写功能

例:向test.txt中写入10行内容:

fp = open("test.txt", mode="w", encoding="utf-8")
for i in range(1,11):
    fp.write("Hello World!"+str(i)+"\n")

fp.close()

 使用重写‘w'时,不需要手动创建test.txt文件,执行代码会自动创建并写入,但值得注意的是,该模式默认不换行,且不支持中文,需引入utf-8

例:用列表加入内容

contents = []
for i in range(1,11):
    contents.append("Hello World!"+str(i)+"\n")

with open("text1.txt", "w",encoding="utf-8") as fp:
    fp.writelines(contents)

例:读取操作:读取test.txt中内容

with open("text1.txt", "r", encoding="utf-8") as file:
    text = file.read()

print(text)

结果为字符串,其中\n会被正常执行 

 例:使用readlines读取文件内容:

with open("text1.txt", "r", encoding="utf-8") as file:
    text = file.readlines()

print(text)

此时返回是每行内容为元素的列表,且\n不会被执行 ,且只读条件下是不可以写入的,会报错

若将上列程序中r改为r+,则可以写入,如:

with open("text1.txt", "r+", encoding="utf-8") as file:
    text = file.readlines()
    file.write("AAA")

print(text)

但是注意如果不读入text则会在开头覆盖,如果改为w+则改为清空内容 ,有指针

1.3 文件的打开与关闭

文件结束后要用close()方法关闭,释放文件的使用授权

文件变量名.close()

使用with关键字可以更方便地管理文件的打开和关闭

with open(文件路径,打开模式)as 文件变量名:

文件读写操作

当该代码块运行结束后,文件自动关闭

1.4 文件的读写

文件常用读取方法如下:

方法含义
f.read (size=-1 )读入整个文件,若size有值,则只读入前size长度的字符串或字节流
f.readline (size=-1)读入整个文件,若size有值,则只读入前size长度的字符串或字节流
f.readlines (hint=-1)读入一行内容,若size有值,则只读入前size长度的字符串或字节流
f.seek (offset)读入所有行,以每行为元素形成一个列表若hint有值,则只读入前hint行改变文件操作指针的位置offset=0表示文件开头,2表示文件结尾

如果文件以文本文件方式打开,则读入字符串如果文件以二进制文件方式打开,则读入字节流

文件常用写入方法如下:

方法

含义

f. write (s)

写入一个字符串或字节流

f.writelines (lines)

将字符串的列表整体写入文件

若采用write()方法,则换行需要自己控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值