博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day08 文件操作
阅读量:5717 次
发布时间:2019-06-18

本文共 1750 字,大约阅读时间需要 5 分钟。

1.初识文件操作

2.只读(r,rb)
3.只写(w,wb)
4.追加(a,ab)
5.r+读写
6.w+写读
7.a+写读(追加写读)
8.其他写作方式
9.文件的修改以及另一种打开文件句柄的方式
主要内容:   
1.我们可以通过使用open()函数的方式打开文件的句柄
打开文件的方式:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b,默认使用r(只读模式)
2.只读(rrb)操作

 

# r模式
f = open('H:/123.txt', mode='r',encoding='UTF-8') # 打开123文件,用只读的方式,编码格式是UTF-8
centent = f.read()  # 读取文件
print(centent)      # 输出内容
f.close()           # 关闭文件
 
# rb模式
f = open('H:/123.txt', mode='rb' ) # 打开123文件,用只读字节的方式
centent = f.read()  # 读取文件,会读取出来字节模式的
print(centent)      # 输出内容.输出字节形式的
f.close()           # 关闭文件

 

绝对路径和相对路径:

  绝对路径:从根目录下一直到你那个文件的位置

  相对路径:根据你当前所在位置的路径

  ../ 返回上一层

读取文件的方式:

read():将文件中的全部内容全部读取出来,弊端:占内存,如果文件太大会崩溃

read(n):读取几个字符,rb模式下才是读取几个字节

readline():一次读取一行,每次读取的数据后面都有一个\n,需要去除

readlines():会将每一行形成一个元素,放到一个列表里

最好使用for循环的方式打开

读取完一定要f.close(),来关闭句柄

写读文件的方式(w,wb):

写的时候要注意,如果没有文件,则会创建文件,如果文件存在,则会删除文件内容,再写入新的内容

write():写入内容,在写入内容的模式下,是无法读取的

flush():刷新文件

wb模式下,可以不指定打开文件的编码,但是在写入的时候必须将字符串,转换为UTF-8bytes数据

 

encode(编码):字符通过编码成为自节

decode(编码):字节通过解码成为字符

 

追加(a,ab)

在追加模式下. 我们写入的内容会追加在文件的结尾

读写模式(r+, r+b)

  对于读写模式. 必须是先读. 因为默认光标是在开头的.准备读取的. 当读完了之后再进行写入. 我们以后使用频率最多的模式就是r+

  需要先读在写

写读(w+, w+b)

  先将所有的内容清空. 然后写入. 最后读取. 但是读取的内容是空的, 不常用

追加读(a+)

 

  a+模式下, 不论先读还是后读. 都是读取不到数据的.

其他操作:

  seek(n):seek(n) 光标移动到n位置, 注意, 移动的单位是byte. 所以如果是UTF-8的中文部分要是3的倍数. 通常我们使用seek都是移动到开头或者结尾. 移动到开头: seek(0) 移动到结尾: seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移, 默认是0, 表示开头, 1表示当前位置, 2表示结尾

  tell():使用tell()可以帮助我们获取当前光标位置

  truncate()截断文件

    在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显示的是多少. 再写入 或者操作文件的时候都是在结尾进行的操作. 所以如果想做截断操作. 记住了. 要先挪动光标. 挪动到你想要截断的位置. 然后再进行截断 关于truncate(n), 如果给出了n. 则从开头开头进行截断, 如果不给n, 则从当前位置截断. 后面的内容将会被删除

    另一种打开文件的方式:

  with open("娃娃", mode="r", encoding="utf-8") as f1:

    这个不需要关闭文件,使用方式和上面一样

转载于:https://www.cnblogs.com/litieshuai/p/9637498.html

你可能感兴趣的文章
好的产品原型具有哪些特点?
查看>>
AngularJS教程
查看>>
Mybatis-Plus 逆向工程
查看>>
vue 对对象的属性进行修改时,不能渲染页面 vue.$set()
查看>>
实现java导出文件弹出下载框让用户选择路径
查看>>
刨根问底--技术--jsoup登陆网站
查看>>
awk学习笔记
查看>>
OSChina 五一劳动节乱弹 ——女孩子晚上不要出门,发生了这样的事情
查看>>
OSChina 周四乱弹 ——心有鱼,而力不足
查看>>
OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗
查看>>
[译]是时候使用Javascript严格模式了
查看>>
Spring--通过注解来配置bean
查看>>
Spring Bean之间的关系
查看>>
pandas 十分钟入门
查看>>
nginx rewrite
查看>>
前端安全系列(一):如何防止XSS攻击?
查看>>
用Mysql5.6出现时间问题Incorrect datetime value: '' for column 'createtime'
查看>>
我的友情链接
查看>>
Pureftpd的权限控制
查看>>
RHEL6 64位ASM方式安装oracle 11gR2(二)
查看>>