网站首页 > 技术文章 正文
Python文件操作的步骤
- 1 打开文件
- 1.1 打开文件的模式
- 1.2 打开文件的例子
- 2 读写操作
- 2.1 读的操作
- 2.1.1 read()代码示例
- 2.1.2 readlines()代码示例
- 2.1.3 readline()代码示例
- 2.1.4 seek()代码示例
- 2.2 写的操作
- 2.2.1 write()代码示例
- 3 关闭文件
- 4对文件或文件夹的一些操作
用于日常学习的积累,如有不足请多多指教。
1 打开文件
open函数可以打开一个已经存在的文件或者创建一个新的文件:
open(file, mode, buffering, encoding, errors, newline, closefd, opener)
其中,
fiile is either a text or byte string giving the name of the file to be opened or an integer file descriptor of the file to be wrapped. (打开的目标文件名的字符串)
mode is an optional string that specifies the mode in which the file is opened.(mode是一个可选字符串,用于指定打开文件的模式。)
1.1 打开文件的模式
模式 | 描述 |
r | 以只读?式打开?件。?件的指针将会放在?件的开头。这是默认模式。 |
rb | 以?进制格式打开?个?件?于只读。?件指针将会放在?件的开头。这是默认模式。 |
r+ | 打开?个?件?于读写。?件指针将会放在?件的开头。 |
rb+ | 以?进制格式打开?个?件?于读写。?件指针将会放在?件的开头。 |
w | 打开?个?件只?于写?。如果该?件已存在则打开?件,并从开头开始编辑,即原有内容会被删除。如果该?件不存在,创建新?件。 |
wb | 以?进制格式打开?个?件只?于写?。如果该?件已存在则打开?件,并从开头开始编辑,即原有内容会被删除。如果该?件不存在,创建新?件。 |
w+ | 打开?个?件?于读写。如果该?件已存在则打开?件,并从开头开始编辑,即原有内容会被删除。如果该?件不存在,创建新?件。 |
wb+ | 以?进制格式打开?个?件?于读写。如果该?件已存在则打开?件,并从开头开始编辑,即原有内容会被删除。如果该?件不存在,创建新?件。 |
a | 打开?个?件?于追加。如果该?件已存在,?件指针将会放在?件的结尾。也就是说,新的内容将会被写?到已有内容之后。如果该?件不存在,创建新?件进?写?。 |
ab | 以?进制格式打开?个?件?于追加。如果该?件已存在,?件指针将会放在?件的结尾。也就是说,新的内容将会被写?到已有内容之后。如果该?件不存在,创建新?件进?写?。 |
a+ | 打开?个?件?于读写。如果该?件已存在,?件指针将会放在?件的结尾。?件打开时会是追加模式。如果该?件不存在,创建新?件?于读写。 |
ab+ | 以?进制格式打开?个?件?于追加。如果该?件已存在,?件指针将会放在?件的结尾。如果该?件不存在,创建新?件?于读写 |
1.2 打开文件的例子
f = open('test.txt', 'r')
2 读写操作
2.1 读的操作
f.read(num) #文件对象.read(num)
其中,num表示要从?件中读取的以字节为单位的数据的?度(默认为读取?件中所有的数据)
其他读的操作 | 作用 | 语法 |
readlines() | 按照?的?式把整个?件中的内容进??次性读取(返回的是?个列表,其中每??的数据为?个元素) | f.readlines() |
readline() | ?次读取??内容 | f.readline() |
seek() | ?来移动?件指针 | f.seek(偏移量,起始位置) #起始位置:0(文件开头),1(当前位置),2(文件结尾) |
2.1.1 read()代码示例
#打开文件
f = open(r'C:\Users\pc\Desktop\三国演义.txt','r',encoding='utf-8')
content = f.read(12)
print(content)
# 关闭?件
f.close()
结果:
2.1.2 readlines()代码示例
#打开文件
f = open(r'C:\Users\pc\Desktop\三国演义.txt','r',encoding='utf-8')
content = f.readlines()
print(content)
# 关闭?件
f.close()
结果:
2.1.3 readline()代码示例
#打开文件
f = open(r'C:\Users\pc\Desktop\三国演义.txt','r',encoding='utf-8')
for i in range(5):
content = f.readline()
print(f'第{i}?:{content}')
#关闭文件
f.close()
结果:
2.1.4 seek()代码示例
#打开文件
f = open(r'C:\Users\pc\Desktop\三国演义.txt','r',encoding='utf-8')
f.seek(15,0)
content = f.read(6)
print(content)
# 关闭?件
f.close()
结果:
2.2 写的操作
f.write(str) #文件对象.write('内容')
2.2.1 write()代码示例
#打开?件
f = open(r'C:\Users\pc\Desktop\HelloWorld.txt', 'w')
f.write('hello world!')
#关闭?件
f.close()
结果:
3 关闭文件
f.close() #文件对象名.close()
4对文件或文件夹的一些操作
导入os模块
import os
相关操作 | 用法 |
文件重命名 | os.rename(目标文件名,新文件名) |
删除文件 | os.remove(目标文件名) |
创建文件夹 | os.mkdir(文件夹名字) |
删除文件夹 | os.rmdir(文件夹名字) |
获取当前目录 | os.getcwd() |
改变默认目录 | os.listdir(目录名) |
获取陌路列表 | os.listdir(目录名) |
猜你喜欢
- 2024-11-22 正点原子I.MX6U嵌入式Linux C应用编程:第二章《文件I/O基础》
- 2024-11-22 如何将Python函数输出内容同时打印到屏幕和文件
- 2024-11-22 3个重点,20个函数分析,浅析FFmpeg转码过程
- 2024-11-22 Linux驱动基础篇:hello驱动
- 2024-11-22 Python自带的库(open函数)读写txt、csv、json、XML、Excel文件
- 2024-11-22 UG NX OPEN二次开发实例:UF,C语言编程,创建圆柱体,API文档翻译
- 2024-11-22 openGauss SEQUENCE函数
- 2024-11-22 Python读取与写入Excel模块:openpyxl
- 2024-11-22 PHP imap_open函数任意命令执行漏洞
- 2024-11-22 linux C语言之文件操作
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 506℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 486℃MySQL service启动脚本浅析(r12笔记第59天)
- 466℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 464℃启用MySQL查询缓存(mysql8.0查询缓存)
- 444℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 423℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 419℃MySQL server PID file could not be found!失败
- 最近发表
-
- netty系列之:搭建HTTP上传文件服务器
- 让deepseek教我将deepseek接入word
- 前端大文件分片上传断点续传(前端大文件分片上传断点续传怎么操作)
- POST 为什么会发送两次请求?(post+为什么会发送两次请求?怎么回答)
- Jmeter之HTTP请求与响应(jmeter运行http请求没反应)
- WAF-Bypass之SQL注入绕过思路总结
- 用户疯狂点击上传按钮,如何确保只有一个上传任务在执行?
- 二 计算机网络 前端学习 物理层 链路层 网络层 传输层 应用层 HTTP
- HTTP请求的完全过程(http请求的基本过程)
- dart系列之:浏览器中的舞者,用dart发送HTTP请求
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)