当前位置: 首页 > article >正文

Python小白学习教程从入门到入坑------第二十八课 文件基础操作文件读写(语法进阶)

目录

文件基础操作

1.1 什么是文件?

1.2 打开文件

1.3 读取文件

1.4 写入文件

1.5 关闭文件

1.6 文件指针和位置

1.7 文件模式



文件基础操作

1.1 什么是文件?

在Python中,"文件"这一术语主要指的是存储在计算机存储设备(例如硬盘、SSD或网络驱动器)上的数据集合。这些数据集合可能是文本文件、二进制文件、图像文件、音频文件、视频文件或任何其他格式的文件。Python提供了一套完整的文件操作API,允许开发者读取、写入、追加、修改以及删除文件内容。

Python中的文件操作通常涉及以下几个步骤:

打开文件使用内置的open函数,可以指定文件名和模式(如读、写、追加等)来打开文件。open函数返回一个文件对象,该对象包含用于文件操作的各种方法

读取文件:如果文件以读模式打开,可以使用文件对象的read、readline或readlines等方法来读取文件内容

写入文件:如果文件以写模式或追加模式打开,可以使用文件对象的write方法将字符串数据写入文件

关闭文件:完成文件操作后,应使用close方法关闭文件,或更推荐使用with语句来确保文件在操作完成后自动关闭

文件指针操作:文件对象还提供了seek和tell方法,允许在文件中移动读取/写入位置,以及获取当前位置

文件模式:open函数允许指定多种模式,包括文本模式和二进制模式,以及只读、只写、读写、追加等

异常处理:在进行文件操作时,可能会遇到各种异常(如文件不存在、权限不足等),因此通常需要使用try...except语句来处理这些潜在错误

在文件的基础操作中也有一些注意事项如下:

1、在读取或写入文件时,应确保文件存在且具有适当的权限

2、使用with语句可以简化文件的管理,并自动处理异常情况下的资源释放

3、在写入文件时,如果文件不存在,写模式('w')会创建新文件,而读模式('r')则会引发FileNotFoundError异常

4、追加模式('a')用于在文件末尾添加内容,而不会覆盖原有内容。如果文件不存在,追加模式也会创建新文件

1.2 打开文件

使用open函数可以打开一个文件,并返回一个文件对象。

open函数的基本语法如下:

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

其中,最常用的参数是file(文件名或文件路径)和mode(模式)。模式决定了是以什么方式打开文件,比如读('r')、写('w')、追加('a')等。如果不指定模式,默认是'r'(只读)

eg:

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

# 打开文件以写入(会覆盖文件内容)
file_write = open('example.txt', 'w')

# 打开文件以追加(在文件末尾添加内容)
file_append = open('example.txt', 'a')

1.3 读取文件

文件对象提供了多种方法来读取文件内容:

read(size=-1):读取整个文件内容(如果指定了size,则读取size个字符)

readline():读取文件的一行

readlines():读取文件的所有行,并返回一个包含每行内容的列表(包括行尾的换行符,除非文件是以二进制模式打开的)

eg:

# 读取整个文件内容
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=''防止添加额外的换行符(如果文件中每行末尾有换行符的话)

1.4 写入文件

使用文件对象的write方法可以将字符串写入文件。如果文件以写模式('w')或追加模式('a')打开,则可以写入内容

eg:

# 写入内容到文件(会覆盖原有内容)
with open('example.txt', 'w') as file:
    file.write('Hello, World!\n')
    file.write('This is a new line.\n')

# 追加内容到文件末尾
with open('example.txt', 'a') as file:
    file.write('This is an appended line.\n')

1.5 关闭文件

文件操作完成后,应该关闭文件以释放系统资源。这可以通过调用文件对象的close方法来实现。但是,更好的做法是使用with语句,它会在代码块执行完毕后自动关闭文件,即使发生异常也会确保文件被正确关闭。

eg:

# 使用with语句自动关闭文件
with open('example.txt', 'r') as file:
    # 文件操作
    content = file.read()
# 文件在这里已经自动关闭,无需调用file.close()

1.6 文件指针和位置

1、seek(offset, whence=0):移动文件指针到指定位置。offset是偏移量,whence是参考点,可以是0(文件开头,默认)、1(当前位置)或2(文件末尾)

2、tell():返回当前文件指针的位置

eg:

# 移动文件指针并读取内容
with open('example.txt', 'r') as file:
    file.seek(7)  # 移动到文件的第8个字节(索引从0开始)
    print(file.tell())  # 输出当前位置
    print(file.read())  # 从当前位置读取剩余内容

1.7 文件模式

除了基本的读写模式('r'、'w'、'a'),Python还支持二进制模式('b')和更新模式('+')

二进制模式:以二进制方式打开文件,例如'rb'(读二进制)、'wb'(写二进制)

更新模式:允许读写文件,例如'r+'(读/写,文件指针在文件开头)、'w+'(写/读,覆盖文件内容,文件指针在文件开头)、'a+'(读/写,追加内容,文件指针在文件末尾)

eg:

# 以二进制模式读取文件
with open('example.bin', 'rb') as file:
    binary_content = file.read()
    # 处理二进制内容

# 以更新模式打开文件
with open('example.txt', 'r+') as file:
    # 读取文件内容
    content = file.read()
    # 移动文件指针到文件开头并写入内容
    file.seek(0)
    file.write('New content at the beginning.\n')
    # 继续读取或写入内容


http://www.kler.cn/a/386230.html

相关文章:

  • 试编写算法将单链表就地逆置(默认是带头节 点,如果是不带头节点地逆置呢?)
  • 基于node一键发布到服务器的js脚本
  • 安装SQL server中python和R
  • 深度学习和图像处理
  • 【IC每日一题:IC常用模块--RR/handshake/gray2bin】
  • 蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)
  • 【AIGC】如何通过ChatGPT轻松制作个性化GPTs应用
  • java后台生成模拟聊天截图并返回给前端
  • MySql中索引为什么用B+树,他有什么特点?时间复杂度是多少?能存多少数据?是不是只能三层?他与B-树有什么不同?还有其它的树你是是否知道?
  • AIPPT项目(提供完整API接入支持套壳)成熟产品线上运营
  • MySQL常用订单表复杂查询15例
  • 找工作就上:万码优才!海量技术岗位等你来
  • PKG_CHECK_MODULES(FUSE,fuse)
  • 「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?(一)
  • 关于 CSS 常用布局及特点作用
  • 微信小程序-事件总线
  • BP 神经网络模型:原理、实现与应用
  • GFPS技术原理(二)-模型注册和配置
  • react中的组件传参
  • pythons工具——图像的随机增强变换(只是变换了图像,可用于分类训练数据的增强)
  • Elasticsearch 实战应用详解!
  • Vue3+exceljs+file-saver 实现将表格数据中包含图片导出Excel
  • 算法
  • vite构建的react程序放置图片
  • 怎么样鉴定疾病相关稀有细胞群?二值化精细模型标签,这个刚发的顶刊单细胞算法值得一学!
  • 字符串查询c++