Python系列(23)——文件读写

一、打开文件

在Python中,使用open()函数可以打开文件。该函数接受两个参数:文件名和模式。模式指定了打开文件的方式,如只读、只写、读写等。

示例:

python 复制代码
# 以只读方式打开文件
file = open('example.txt', 'r')

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

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

请注意,打开文件后,一定要记得在使用完毕后关闭文件,可以使用close()方法关闭文件。

二、读取文件

读取文件可以使用read()readline()readlines()等方法。

  • read()方法读取整个文件内容,并将其作为一个字符串返回。
  • readline()方法每次读取文件的一行内容。
  • readlines()方法读取整个文件内容,并将其作为一个字符串列表返回,每个元素代表文件中的一行。

示例:

python 复制代码
# 打开文件
file = open('example.txt', 'r')

# 读取整个文件内容
content = file.read()
print(content)

# 读取文件的第一行
first_line = file.readline()
print(first_line)

# 读取文件的所有行
lines = file.readlines()
for line in lines:
    print(line, end='')  # end='' 用于避免打印额外的换行符

# 关闭文件
file.close()

三、写入文件

写入文件可以使用write()方法。该方法接受一个字符串参数,并将其写入到文件中。

示例:

python 复制代码
# 以写入模式打开文件
file = open('example.txt', 'w')

# 写入内容到文件
file.write('Hello, World!\n')
file.write('This is a test file.\n')

# 关闭文件
file.close()

四、文件指针操作

文件对象内部有一个指针,指向当前读取或写入的位置。可以使用seek()方法移动指针位置,tell()方法获取当前指针位置。

示例:

python 复制代码
# 打开文件
file = open('example.txt', 'r')

# 读取文件的前10个字符
content = file.read(10)
print(content)

# 移动文件指针到文件开头
file.seek(0)

# 再次读取文件的全部内容
content = file.read()
print(content)

# 获取当前文件指针的位置
position = file.tell()
print(position)

# 关闭文件
file.close()

五、文件其他操作

除了上述基本操作外,Python还提供了其他文件操作方法,如检查文件是否存在、重命名文件、删除文件等。

示例:

python 复制代码
# 检查文件是否存在
import os
if os.path.exists('example.txt'):
    print('File exists.')
else:
    print('File does not exist.')

# 重命名文件
os.rename('example.txt', 'new_example.txt')

# 删除文件
os.remove('new_example.txt')

总结:Python提供了丰富的文件操作方法,使得开发者能够轻松处理文件。在实际开发中,根据需求选择合适的方法,并注意文件打开和关闭的管理,以避免资源泄露和错误发生。通过熟练掌握这些文件操作方法,我们可以更加高效地处理文件数据,实现各种文件相关的功能。

相关推荐
RoyLin1 分钟前
TypeScript设计模式:仲裁者模式
前端·后端·typescript
子兮曰5 分钟前
🚀前端依赖配置避坑指南:深度解析package.json中devDependencies的常见误解
前端·javascript·npm
瑶琴AI前端6 分钟前
【零成本高效编程】VS Code必装的5款免费AI插件,开发效率飙升!
前端·ai编程·visual studio code
forever_Mamba7 分钟前
实现一个高性能倒计时:从踩坑到最佳实践
前端·javascript
_AaronWong7 分钟前
实现一个鼠标滚轮横向滚动需求
前端·electron
子兮曰8 分钟前
浏览器与 Node.js 全局变量体系详解:从 window 到 global 的核心差异
前端·javascript·node.js
Olrookie9 分钟前
ruoyi-vue(十五)——布局设置,导航栏,侧边栏,顶部栏
前端·vue.js·笔记
召摇10 分钟前
API 设计最佳实践 Javascript 篇
前端·javascript·vue.js
光影少年10 分钟前
vite打包优化有哪些
前端·vite·掘金·金石计划
码间舞10 分钟前
文件太大怎么上传?【分组分片上传大文件】-实战记录
前端·vue.js·程序员