【Python】入门到放弃之第十四章《文件操作》

上一篇:【Python】入门到放弃之第十三章《异常处理》


前言

这是本系列的第十四章节内容,也是最后一章,它的名字为《文件操作》。


一、定义

  • 文件操作是计算机编程和日常使用中不可或缺的一部分,它涉及对存储在硬盘或其他存储设备上的数据进行读取、写入、修改、删除等操作。
  • 文件操作的基本步骤通常包括打开文件、操作文件内容(读操作、写操作等)、关闭文件。

二、创建文件

  • ‘w’ 模式创建文件。

代码如下(示例):

# 打开(如果文件不存在则创建)文件以写入内容  
with open('example.txt', 'w') as file:
    file.write('Hello, this is a new file.\n')
    file.write('Writing another line.')

三、打开文件

  • 使用open()函数打开文件。该函数接受文件名和模式作为参数,并返回一个文件对象。

代码如下(示例):

# 打开文件以读取内容  
file = open('example.txt', 'r')

# 打开文件以写入内容,如果文件不存在则创建  
file = open('example.txt', 'w')

# 打开文件以追加内容,如果文件不存在则创建  
file = open('example.txt', 'a')

# 打开二进制文件  
# 例如,读取图片,假设已有名为 “image.png”  的图片
# 注意:使用with语句打开文件是一种好习惯,因为它会在代码块执行完毕后自动关闭文件,即使发生异常
with open('image.png', 'rb') as img_file:
    img_data = img_file.read()

四、读取文件

  • read(size=-1):读取文件内容,size 是可选的,表示要读取的字节数。如果未指定或为负值,则读取整个文件。
  • readline(size=-1):读取文件中的一行。
  • readlines(hint=-1):读取文件中的所有行,并将它们作为字符串列表返回。hint参数控制读取的行数,但实际上这个参数并不总是有效。

代码如下(示例):

with open('example.txt', 'r') as file:  
    content = file.read()  
    print(content)  
  
# 逐行读取  
with open('example.txt', 'r') as file:  
    for line in file:  
        print(line, end='')  # end='' 用于避免打印额外的换行符

五、写入文件

  • write(s):将字符串 s 写入文件。
  • writelines(lines):写入一个字符串列表,但不会自动在字符串之间添加换行符。

代码如下(示例):

with open('example.txt', 'w') as file:  
    file.write('Hello, World!\n')  
    file.writelines(['This is a line.\n', 'So is this.\n'])

六、文件指针

  • 文件操作时,有一个文件指针(也称为读取/写入指针)指向文件中的当前位置。read() 、readline() 和 write() 等方法会移动这个指针。你可以使用 seek(offset, whence=0) 方法来移动指针,其中 offset 表示要移动的字节数,whence 表示从哪个位置开始移动(0表示文件开头,1表示当前位置,2表示文件末尾)。

代码如下(示例):

# 此时,example.txt 的内容如下
# Hello, World!
# This is a line.
# So is this.

with open('example.txt', 'r+') as file:
    file.seek(5)  # 移动到文件的第5个字节处
    content = file.read()  # 从当前位置读取到文件末尾
    print(content)

输出如下(示例):

, World!
This is a line.
So is this.

七、关闭文件

  • 使用 with 语句可以自动关闭文件,但如果不使用with语句,则应该使用文件对象的 close() 方法来手动关闭文件。

代码如下(示例):

file = open('example.txt', 'r')  
# ... 执行文件操作 ...  
file.close()  # 关闭文件

八、小结

  1. 当以写入(‘w’)模式打开文件时,如果文件已存在,其内容将被覆盖。
  2. 当以追加(‘a’)模式打开文件时,写入的数据将添加到文件末尾,而不会覆盖现有内容。
  3. 在处理大文件时,使用 readline() 或迭代文件对象(for line in file:)来逐行读取文件,以避免一次性将文件内容全部加载到内存中。
  4. 对于二进制文件,应使用 ‘rb’ 、‘wb’ 或 ‘ab’ 等模式打开文件,并使用 bytes 类型的数据进行读写操作。

总结

以上,就是 Python 文件操作的全部内容。随着本章的结束,本系列“从入门到放弃”也就告一段落了,希望好好学,好好做,天天开心。

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值