码迷,mamicode.com
首页 > 其他好文 > 详细

文件操作

时间:2018-08-07 18:51:35      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:为我   只读   ima   utf-8   取数   目录   image   mode   os模块   

一.文件操作的函数

open(文件名(路径), mode = ‘?‘, encoding = ‘字符集‘)

二.模式:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b

常用:r,w,a,r+,b

默认使?用的是r(只读)模式

1.只读操作(r,rb)

f = open("困得要死.txt",mode="r", encoding="utf-8") 
content = f.read()
print(content) 
f.close(

 

注意:encoding表示编码集. 根据文件的实际保存编码进行获取数据, 对于我们而言 更多的是utf-8.

 

rb:读取出来的数据是bytes类型, 在rb模式下不能选择encoding字符集.

f = open("困得要死.txt",mode="rb" ) 
content = f.read() 
print(content) 
f.close() 
结果: b\xe6\xaf\x85\xe5\x93\xa5, \xe5\xa4\xaa\xe7\x99\xbd

 

rb的作?:在读取非文本文件的时候,比如读取MP3,图像,视频等信息的时候就需要用到rb,因为这种数据是

没有办法直接显示出来的,在文件上传下载时会用到.还有我们看到的直播实际上就是这种数据

2.绝对路径与相对路径

绝对路径:从磁盘的根目录开始一直到文件名

相对路径:同一个文件夹下的文件,相对于当前这个程序所在的文件夹而言,如果在同一个文件夹中,

则相对路径就是这个文件名,如果在上一层文件夹中,则要:‘../‘

技术分享图片

推荐:更推荐大家使用相对路径,因为我们把程序拷给别人使用的时候,直接把项目拷贝走就能运行,

但是如果使用绝对路径,还必须要拷贝外部文件

3.读取文件的方法

(1).read()将文件中的内容全部读取出来,弊端:占内存,如果文件过大,容易导致内存崩溃

f = open("../def/哇咔咔.txt", mode="r" encoding="utf-8") 
content = f.read(3) 
print(content)

结果:
我欲乘风破浪,
踏遍黄沙海洋,
哪怕误会一场,
也要不负勇往.

 

(2).read(n)读取n个字符,需要注意的是,如果再次读取,那么会在当前位置继续读而不是从头读,如果

使用的是rb模式,则读出来的是n个字节

f = open("../def/哇咔咔.txt", mode="r" encoding="utf-8")
content = f.read(3)
print(content)

结果:
我欲乘

f = open("../def/哇咔咔.txt", mode="rb") 
content = f.read(3) 
print(content)

结果:
b\xe9\xa3\x8e\xe7\xa0\xb4\xe6\xb5\xaa

f = open("../def/哇咔咔.txt", mode="r", encoding="utf-8") 
content = f.read(3) 
content2 = f.read(3) 
print(content) 
print(content2

结果:
我欲乘
风破浪

 

 

 

 

 

 

三.常用的操作

1.光标(seek)*

  seek(0) 开头

  seek(0,2) 结尾

2.tell() 光标的位置

3.truncate 截断文件

四.修改文件

1.引入os模块

2.打开目标文件, r

3.打开文件副本, w

4.从r中读取内容进行修改,写入到副本中

5.删除源文件

6.重命名副本

 

文件操作

标签:为我   只读   ima   utf-8   取数   目录   image   mode   os模块   

原文地址:https://www.cnblogs.com/rixian/p/9438535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!