python学习第七\八天—2018.6.06 文件操作

一.文件操作:

使用python来读写文件是⾮非常简单的操作. 我们使用open()函数来打开⼀一个文件, 获取到文 件句柄. 然后通过文件句柄就可以进行各种各样的操作了. 根据打开方式的不同能够执行的操作也会有相应的差异.

打开⽂文件的⽅方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使⽤用的是r(只读)模式.

文件操作的三要素:

f = open("../def/哇擦.txt", mode="r", encoding="utf-8") 

1.文件的路径,名称(包括后缀名).如

  1.绝对路径:如d:/zxm/abc/hh.txt.从磁盘根目录开始⼀一直到文件名.

  2.相对路径:同一个文件夹下的文件. 相对于当前这个程序所在的文件夹而言. 如果在同 一个文件夹中. 则相对路径就是这个文件名. 如果在上一层文件夹. 则要../  

    如:./../zxm/abc/hh.txt

  我们更推荐⼤大家使用相对路径. 因为在我们把程序拷贝给别人使用的时候. 直接把项目拷贝走 就能运行. 但是如果用绝对路径. 那还需要拷贝外部的文件.

2.文件打开的方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使用的是r(只读)模式.mode=

3.编码的格式:coding=.需要注意encoding表⽰示编码集. 根据⽂文件的实际保存编码进⾏行行获取数据, 对于我们⽽而⾔言. 更更 多的是utf-8.

二.文件的不同打开方式:

1.只读操作(r,rb)

f = open("护⼠士少妇嫩模.txt",mode="r", encoding="utf-8")
 content = f.read() 
print(content) f.close()

 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, wuse\n\xe5\x91\xb5\xe5\x91\xb5\n\xe6\x97\xa5\xe5\xa4\xa9' 

rb的作⽤用: 在读取⾮非⽂文本⽂文件的时候. ⽐比如读取MP3. 图像. 视频等信息的时候就需要⽤用到 rb. 因为这种数据是没办法直接显⽰示出来的.  在后⾯面我们⽂文件上传下载的时候还会⽤用到. 还有.
我们看的直播. 实际上都是这种数据.

读取⽂文件的⽅方法:

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

2. read(n) 读取n个字符. 需要注意的是. 如果再次读取. 那么会在当前位置继续去读而不是从头读, 如果使用的是rb模式. 则读取出来的是n个字节

3. readline() 一次读取一行数据, 注意: readline()结尾, 注意每次读取出来的数据都会有⼀一 个\n 所以呢. 需要我们使用strip()方法来去掉\n或者空格

4. readlines()将每一行形成一个元素, 放到一个列表中. 将所有的内容都读取出来. 所以 也是.容易出现内存崩溃的问题.不推荐使用

f = open("../def/哇擦.txt", mode="r", encoding="utf-8") 
lst = f.readlines() 
print(lst) 
for line in lst:
    print(line.strip())

5. 循环读取. 这种方式是最好的. 每次读取一行内容.不会产生内存溢出的问题.

f = open("../def/哇擦.txt", mode="r", encoding="utf-8") 
for line in f:
    print(line.strip())

注意: 读取完的文件句柄一定要关闭   f.close()

2.只

猜你喜欢

转载自www.cnblogs.com/zxmbky/p/9155782.html