【Python学习笔记Day28】5.4 Python文件的使用

本文深入讲解了Python中文件操作的基本方法,包括不同模式下打开文件的功能、文件对象的方法如read、write、seek等的使用,以及如何进行有效的文件读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#对文件的处理
输入–> 处理–> 输出
前面很多讲中,我们很好的处理数据,然后打印输出结果
即input()和print()获取和打印

1.文件

.exe .txt .ppt .jpg .mp4 .avi

1. open() 打开文件

可以使用 help(open)来查看文档

open(file, mode='r', buffering=-1, encoding=None,
errors=None, newline=None, closefd=True, opener=None)

file是文件名, mode即为打开模式,

2.打开模式:
1)‘r’ 以只读方式打开文件(默认)
2)‘w’ 以写入方式打开文件,会覆盖已存在的文件,不存在会创建
3)‘x’ 如果文件已经存在,使用此模式打开将引发异常
4)‘a’ 以写入模式打开,如果文件存在,则再末尾追加写入
5)‘b’ 以二进制模式打开文件
6)‘t’ 以文本模式打开(默认)
7)’+’ 可读写模式(可添加到其他模式使用)
8)‘U’ 通用换行符支持

打开此文件夹下的1st.py

f = open('test.txt',encoding='utf-8')
print(f)
#打印出以下格式
#<_io.TextIOWrapper name='D:\\Project\\python\\1st.py' mode='r' encoding='cp936'>

2.文件对象方法

#文件对象方法 执行操作

1)f.close() 关闭文件

在C语言的程序中,在打开文件操作完后,一定得记得关闭文件,
在python语言中,由于存在垃圾回收机制,可以不必关闭文件
但并不是说不用关闭文件,在完成写入之后,需要关闭文件,因为python会缓存写入的数据,如果中途
断电,缓存的数据不会写入文件中

2)f.read([size=-1]) 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余的所有字符,然后作为字符串返回
print(f.read())     #打印文件内的所有信息
print(f.read())     #再次读取,则打印空行
f.close()   #关闭文件


f = open('test.txt',encoding='utf-8')
print(f.read(5))    #打印读取的前五个字符
#这时候的文件指针在第五个字符的位置
print(f.tell())     #打印5 告诉我们当前位置在5

对于有中文字符的来说,一个中文代表两个字节,这里并不是对等

f.close()
f = open('test.txt',encoding='utf-8')
print(f.read(15))    #打印读取的前15个字符
print(f.tell())     #打印16 告诉我们当前位置在16
3)f.readline([size=-1]) 从文件中读取并返回一行(包括行结束符),如果有size有定义则返回size个字符
4)f.write(str) 将字符串str写入文件
5)f.writelines(seq) 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
6)f.seek(offset, from) 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
7)f.tell() 返回当前在文件中的位置(指针位置)
8)f.truncate([size=file.tell()]) 截取文件到size个字节,默认是截取到文件指针当前位置
print("seek()方法")
f.close()
f = open('test.txt',encoding='utf-8')
print(f.seek(15,0))  # 从文件开头开始,指针在25的位置
print(f.readline()) #从文件中读取的是    

print(list(f))  #讲文件转化为列表,每一行为一个元素

f.seek(0,0)
lines = list(f)
for each_line in lines:
    print(each_line)
#这样的效率很低,尤其对于数据很长的时候
#可以直接使用
f.seek(0,0) #指针返回文件开头
for each_lin in f:
    print(each_lin)

3. 文件的写入

写入文件时,必须确保在打开模式中有可写入的模式
f.write(‘I love you’) #报错,不可写入

f1 = open('test1.txt','w') #没有文件则创建
print(f1.write('I love you'))        #返回的是写入几个字符 打印10
f1.close()#关闭才会写入字符串,没有关闭,则会放在python的缓冲区里
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆渡沧桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值