读操作(二)
一.只读
有如下文件,但是没有相应的软件打开,想不想看?
美女模特空姐护士联系方式.txt
让你开发一个软件,可以打开此文件,你需要什么参数? 文件路径: D:美女模特空姐护士联系方式.txt 编码:utf-8,gbk,gb2312.... 模式:只读,只写,追加,写读,读写....
使用Python来读写文件是非常简单的操作,我们使用open()来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了
根据打开方式的不同能够执行的操作会有相应的差异.
打开文件的方式:
r,w,a
r+,w+,a+
rb,wb,ab
r+b,w+b,a+b
1.1 r模式
我们先来看看这个只读操作,听名字应该也知道只能进行读不能进行别的操
f = open('美女模特空姐护士联系方式.txt',mode='r',encoding='utf-8')
content = f.read()
print(content)
f.close()
结果:
标题很好
open中第一个参数放入的是要打开的文件名字,第二个参数是要对这个文件进行的操作,第三参数是用什么编码方式打开文件中的内容
f 可写成任意变量等,它被称作:文件句柄,文件操作符,或者文件操作对象等。 open 是Python调用的操作系统(windows,linux,等)的功能,而windows的默认编码方式为gbk,linux默认编码方式为utf-8,所以你的文件用什么编码保存的,就用什么方法打开,一般都是用utf-8。 mode为打开方式:常见的有r,w,a,r+,w+,a+.rb,wb,ab,等,默认不写是r。 流程就是打开文件,产生一个文件句柄,对文件句柄进行相应操作,关闭文件。
1.2 rb 模式
我们试了r只读,再看看rb只读字节的模式
f = open('护士少妇萝莉',mode='rb')
content = f.read()
print(content)
f.close()
结果:
b'xe6xa0x87xe9xa2x98xe5xbex88xe5xa5xbd'
rb 读出来的数据是bytes类型,在rb模式下,不能encoding字符集
rb的作用:在读取非文本文件的时候,比如要读取mp3,图像,视频等信息的时候就需要用到rb,因为这种数据是没办法直接显示出来的
这个字节的模式是用于传输和存储
好了,我们动手试一试.读文件吧,你们如果是在windows系统中用记事本创建的文件,在打开的时候会有问题,
是因为windows系统中记事本中写的内容编码是GBK我们要不将文件中编码改成utf-8 要不在open中第三个参数 中
修改成utf-8
二.路径
2.1 相对路劲
以上代码中文件名使用的是相对路劲,什么是相对路劲呢???
就是相对于某个文件来说,进行路劲查找,以上代码是相对于运行的文件.
如果相对还是太理解,来看下这列子:
你朋友要来找你,知道你在那个楼那一层但是不知道那个一个屋,现在你朋友来到这个楼里相对他知道的这一层然后开始找你在那个房间
这种操作就是相对路劲,例子中是通过这个楼中的这一层开始寻找,也就是相对于这个楼的某一层
2.2 绝对路径
绝对路径是从咱们电脑的磁盘开始查找,例如想要知道你的家乡是哪的,你身份证上写的住址就是绝对路径
绝对路径:从根目录下开始一直到文件名。
相对路径:同一个文件夹下面的文件,直接写文件名就可以。
我们在使用绝对路径的时候因为有这样程序是不能识别的,解决方法:
open('C:UsersMeet') #这样程序是不识别的
解决方法一:
open('C:\Users\Meet') #这样就成功的将进行转义 两个\代表一个
解决方法二:
open(r'C:UsersMeet') #这样相比上边的还要省事,在字符串的前面加个小r也是转义的意思 推荐使用这种
路径方面我更推荐大家使用相对路劲,因为我把这个程序的整个文件发给你的时候,就可以运行,如果使用绝对路径还需要额外的拷贝外部文件给你