Python对文件的操作

文章讲述了计算机如何使用编码如UTF-8、GBK等将文本转换为二进制存储,并介绍了在Python中如何使用open函数进行文件的打开、读取、写入和追加操作。重点提到了读取文件的read、readlines、readline以及for循环读取方式,以及写入文件时的注意事项,包括flush和close方法的使用。
摘要由CSDN通过智能技术生成

文件编码

计算机只能识别0和1,我们丰富的文本文件是使用编码技术将内容翻译成0和1存入的。

编码技术即翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。

计算机中有许多可用编码:

  • UTF-8
  • GBK
  • Big5
  • 等等

不同的编码,将内容翻译成二进制也是不同的。

UTF-8是目前全球通用的编码格式。

查看文件编码

可以使用Windows系统自带的记事本,打开文件后,即可看出文件的编码是什么(右下角)。

文件

内存中存放的数据在计算机关机后就会消失。要想长久保存数据,就要使用硬盘、光盘、U盘等设备。为了便于数据的管理和检索,引入了文件的概念。

一般来说,文件可分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别。

在日常生活中,文件操作主要包括打开、关闭、读、写。

打开文件

在 python 中,使用 open 函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下。

oprn(name,mode,encoding)

  • name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
  • mode: 设置打开文件的模式(访问模式):只读、写入、追加等。
  • encoding:编码格式(推荐使用 UTF-8)

模式

r:只读模式,指针会在文件的开头, 这是默认的。

w:写入模式,如果文件存在,则打开文件从头开始编辑,原有内容会被删除,如果不存在,创建新文件。

a:打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后,如果该文件不存在,创建新文件进行写入。

# 打开文件
f = open("D:/test.txt","r",encoding="UTF-8")
print(type(f))

# 读取文件 -read()
print(f"读取10个字节的结果:{f.read(10)}")
# 如果是同一个文件对象会在上一个读取后继续读取
print(f"read方法读取全部内容的结果是:{f.read()}")

f = open("D:/test.txt","r",encoding="UTF-8")
# 读取文件 -readlines()
lines = f.readlines()
print(f"lines对象的类型是:{type(lines)}")
print(f"lines对象的内容是:{lines}")

f = open("D:/test.txt","r",encoding="UTF-8")
# 读取文件 -readline()
line1 = f.readline()
line2 = f.readline()
print(f"第一行数据是:{line1}")
print(f"第二行数据是:{line2}")

f = open("D:/test.txt","r",encoding="UTF-8")
# for 循环读取文件行
for line in f:
    print(f"每一行数据是:{line}")

# 文件的关闭 -close()
f.close()

# with open 语法操作文件
# 操作完会自动关闭文件
with open("D:/test.txt","r",encoding="UTF-8") as f:
    for line in f:
        print(f"每一行数据是:{line}")

写入

# 打开文件,不存在的文件
f = open("D:/test1.txt","w",encoding="UTF-8")

# write 写入
f.write("Hello World") # 内容写入到内存中

# flush 刷新
f.flush()

# close 关闭
f.close()   # close 内置了 flush 方法

# 打开一个存在的文件
# 文件存在会清空文件的内容再写入
f1 = open("D:/test.txt","w",encoding="UTF-8")

# write 写入,flush 刷新
f1.write("金清泽真棒")
f1.flush()

# close 关闭
f1.close()

注意

  • 直接调用 write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
  • 当调用 flush 的时候,内容会真正写入文件
  • 这样做事避免频繁的操作硬盘,导致效率下降(积攒一堆,一次性写磁盘)

追加写入

注意:

  • a模式,文件不存在会创建文件
  • a模式,文件存在会在最后,追加写入文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值