python基础06--文件操作
2024-09-17 16:48:27
1.1 文件操作
1、只读(r,rb) rb以bytes方式读文件
只写(w,wb)
追加(a,ab)
r+ 读写
w+ 写读
a+ 追加写读
以什么编码方式储存的文件,就用什么编码方式打开
默认使用r(只读)
有b,则打开是不需要指定编码方式
2、相对路径(从当前目录开始找) ../ 推荐使用
绝对路径
只读r
f = open(“d:/a.txt”,mode=’r’,encoding=’utf-8’)
content = f.read()
print(content)
f.close()
只写w 清空后再写入 ,没有文件就创建
f = open(“d:/a.txt”,mode=’r’,encoding=’utf-8’)
f.write(“wemon”)
f.flush()
f.close()
追加a 在原来基础上追加内容 ,没有文件就创建
f = open(“d:/a.txt”,mode=’a’,encoding=’utf-8’)
f.write(“wemon”)
f.flush()
f.close()
rb,wb,ab 处理的是非文本
只读rb
f = open(“d:/a.txt”,mode=’rb’,encoding=’utf-8’)
content = f.read()
print(content.decode(“utf-8”)) #需要编码
f.close()
只读wb
f = open(“d:/a.txt”,mode=’rb’,encoding=’utf-8’)
f.write(“你好啊”.encode(“utf-8”)) 需要编码在写入
print(content.decode(“utf-8”))
f.close()
f.read()读是读的光标后面的内容
读写r+
默认光标在文件开头,先读后写光标在最后 先写光标在最前面,覆盖写
f = open(“d:/a.txt”,mode=’r+’,encoding=’utf-8’)
f.read()
f.write(“你好啊”)
f.flush()
f.close()
写读w+ 不好用
w操作,会清空原来的内容
f = open(“d:/a.txt”,mode=’r+’,encoding=’utf-8’)
f.write(“你好啊”)
f.seek(0) 移动光标到文件首
s = f.read()
print(s)
f.close()
3、相关操作
神坑r+ 如果先读取,在写,写入的是末尾
在没有任何操作之前去进行写,在开头写
f = open(“d:/a.txt”,mode=’r+’,encoding=’utf-8’)
f.read(3) #从光标处读三个字符
f.write(“你好啊”) # 写入到末尾
f.flush()
f.close()
seek(n) 从开头光标移动到n位置,移动的单位是byte,所以如果是utf-8,中文需要是3的倍数,英文是1个byte
seek(0) 移动到开头
seek(0,2) 移动到结尾,seek第二个参数表示从哪个位置进行偏移,默认是0表示从开头,1表示当前位置,2表示结尾
f = open(“d:/a.txt”,mode=’r+’,encoding=’utf-8’)
f.seek(6) #移动6个字节,2个字
f.read(3) #从光标处读三个字符
f.seek(0) #光标回到开头
f.read(3) #从开头读三个
f.flush()
f.close()
4、tell() 当前光标的位置
5、文件修改 with as 不用关闭文件
import os
with open(“d:/a.txt”,mode=’r’,encoding=’utf-8’) as f1 ,
open(“d:/a.txt”,mode=’w’,encoding=’utf-8’) as f2:
#s = f1.read() #全部读取完后修改
#ss=s.replace(“肉”,”菜”)
#f2.write(ss) for line in f: #一行一行修改
s = line.replace(‘肉’,’菜’)
f2.write(s)
os.remove(“吃的”)
os.rename(‘吃的_副本’)
读 一行一行读 f.readline()
f= open(“file/test.txt”,mode=’r’,encoding=’utf-8’)
for line in f:
print(line)
f.close()
最新文章
- coursera机器学习笔记-建议,系统设计
- [自动运维]ant脚本打包,上传文件到指定服务器,并部署
- svn Error: post-commit hook failed (exit code 127) with output
- Codeforces Round #188 (Div. 1) B. Ants 暴力
- Linux查看硬件信息,主板型号及内存硬件,驱动设备,查看设备,查看CPU。
- wifi_uplink脚本分析
- ArrayList/List 泛型集合
- flowplayer视频播放插件
- 《JS权威指南学习总结--6.7属性的特性》
- Struts2基础学习(三)—Result和数据封装
- 深入研究React setState的工作机制
- MT【259】2016天津压轴题之最佳逼近
- PHP use闭包函数
- phpstudy 配置 memcached / memcache
- linux系统下如何批量更改文件夹里面所有相同字符【转】
- Tomcat介绍 安装jdk 安装Tomcat
- python 爬爬爬 基本函数~
- Unity3d操作的一些技巧知识点和BUG解决方案
- 怎么下载tomcat的其他版本
- BootStrap一页通(样式+组件+插件)
热门文章
- centos安装安全狗5步就能完成
- l获取list 的长度,EL表达式获取list的长度,EL表达式获取list大小
- mysql 之编码配置、引擎介绍、字段操作、数据类型及约束条件
- es6 Class类的使用
- Chrome插件中 popup,background,contentscript消息传递机制
- 靶场sql注入练手----sqlmap篇(纯手打)
- 洛谷p3353在你窗外闪耀的星星题解
- OI蒟蒻收集的各种网址集合(无标记
- 09-排序3 Insertion or Heap Sort (25 分)
- 几句话总结一个算法之CTR预估模型