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()

最新文章

  1. coursera机器学习笔记-建议,系统设计
  2. [自动运维]ant脚本打包,上传文件到指定服务器,并部署
  3. svn Error: post-commit hook failed (exit code 127) with output
  4. Codeforces Round #188 (Div. 1) B. Ants 暴力
  5. Linux查看硬件信息,主板型号及内存硬件,驱动设备,查看设备,查看CPU。
  6. wifi_uplink脚本分析
  7. ArrayList/List 泛型集合
  8. flowplayer视频播放插件
  9. 《JS权威指南学习总结--6.7属性的特性》
  10. Struts2基础学习(三)—Result和数据封装
  11. 深入研究React setState的工作机制
  12. MT【259】2016天津压轴题之最佳逼近
  13. PHP use闭包函数
  14. phpstudy 配置 memcached / memcache
  15. linux系统下如何批量更改文件夹里面所有相同字符【转】
  16. Tomcat介绍 安装jdk 安装Tomcat
  17. python 爬爬爬 基本函数~
  18. Unity3d操作的一些技巧知识点和BUG解决方案
  19. 怎么下载tomcat的其他版本
  20. BootStrap一页通(样式+组件+插件)

热门文章

  1. centos安装安全狗5步就能完成
  2. l获取list 的长度,EL表达式获取list的长度,EL表达式获取list大小
  3. mysql 之编码配置、引擎介绍、字段操作、数据类型及约束条件
  4. es6 Class类的使用
  5. Chrome插件中 popup,background,contentscript消息传递机制
  6. 靶场sql注入练手----sqlmap篇(纯手打)
  7. 洛谷p3353在你窗外闪耀的星星题解
  8. OI蒟蒻收集的各种网址集合(无标记
  9. 09-排序3 Insertion or Heap Sort (25 分)
  10. 几句话总结一个算法之CTR预估模型