pyhon学习<文件操作>

本文详细介绍了在Python中操作文件的基本步骤,包括文件的打开、读取、写入和关闭。讲解了不同模式下文件的处理方式,如读模式、写模式和追加模式,并解释了文件句柄的概念及文件编码格式的重要性。

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

我们要操作一个文件,一般分为以下步骤:

1.      找到文件

2.      打开文件

3.      操作文件

4.      关闭文件

打开的文件内存对象赋一个变量,后续通过变量找到这个文件内存对象,再去操作文件。

f = open("Dream",'r',encoding="utf-8")

赋给f的是一个内存对象,又把它称为文件句柄===其实就是这个文件的内存对象。

这句话的意思是:我们打开Dream文件,之所以加encoding =”utf-8”是因为在windows操作系统下默认文件的打开方式是gbk,而python默认的编码格式为utf-8,这样写的话即就是告诉程序打开文件的方式为utf-8。

data = f.read()

可以理解为对这个文件进行读操作,将读出来的内容赋给变量data

data2 = f.read()

 

print(data)

开始读的时候可以理解为指针停留在文件段落的第一行,读完之后指针停留在最后

print(data2)

再次读的时候指针会继续往下走,文件下面什么都没有,因此什么都读不到,后续会学习如何将指针移回来,重新读。

f = open("Dream",'w',encoding="utf-8")

这种写的方式意思是创建一个文件,如果文件原来有东西,会将原来的东西清空。格式:文件名.如果没有这个文件名,会创建此文件,w写模式,encoding="utf-8"打开文件的编码格式

f = open("Dream2",'w',encoding="utf-8")

创建一个文件,文件名为Dream2。

f.write("DREAM")

给文件Dream2中写DREAM。如果后续想操作这个文件的话,建议将其赋给一个变量即 

data = f.write("DREAM")

 

f.write(" I LOVE YOU")

这样继续写会和上面写的DREAM写到一行。想换行的话在上面DREAM后面加换行符即可:

 如果即想写,又想读。

f = open("DREAM",'a',encoding="utf-8")#append追加

不全部读取,写一次读一行,显然这是愚蠢的办法

f = open("yong man","r",encoding="utf-8")
print(f.readline()
print(f.readline(

 打印所有文件内容,下面这种方式打印出来的结果为列表形式

print(f.readlines()

 打印所有文件,以原文件格式显示

for line in f.readlines():
    # print(line)
#打印出来结果中间有一些空行,是因为我们每一个元素后面默认有一个\n,因此将它打印出来,直接换行。
#不想换行的话:
    #print(line.strip())#strip把空格和换行去掉

f.readlines()#只适合读小文件,大文件内存放不下。卡死。循环时,打印完一行,就不需要它了,为什么还要将它存在内存中,没有必要,怎么办呢?可不可以变成循环一行,删掉一行即内存中只保存一行,即便是很大的文件用这种办法处理也是没问题的,占空间小。

高级办法

 

for line in f:#这种办法其实是一行一行读,并且内存中只保存一行,效率最高
    print(line.strip())

为什么这种办法能实现内存中只保存一行,这是因为这个文件f已经被变成了迭代器(牛逼),已经不是列表了,因此没有办法通过枚举的方式将其下标取出来,需要写计数器 :

 

count = 0
for line in f:
    count +=1
    print(count,line.strip())

未完。。。

转载于:https://www.cnblogs.com/jb9527/p/10161233.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值