五、文件操作

一、文件的打开模式和编码

1)编码

  字符型的文件会先编码然后再存储。所以读取这些文件的时候就需要解码。

2)打开模式

  文件的打开模式有只读(r),只写(w),追加(a),以及二进制模式和二进制加下的只读(rb),只写(wb),追加(ab)。

  只读:默认模式,文件必须存在,不存在则抛出异常

  只写:不可读;不存在则创建;存在则清空内容】

  追加:不可读;不存在则创建;存在则只追加内容】

  二进制下的作用一样,只是读出或者写入的是看不懂得bytes。

3)打开文件

  (1)f = open(filepath,mode,encoding)

  文件路径可以是相对的,也可以是绝对的。只要找得到你要读或者写的文件进行。编码格式对应,不乱码就行。

f = open('../Day07/file.txt','r',encoding='utf-8')

  (2)with open(filepath,mode,encoding) as f:

  跟上面的一样的,不过是形式不一样。

with open('../Day07/file.txt') as f:
    f.close()

二、文件的读

  1)read():读出文件中的所有内容;如果读取很大的文件的时候尽量不要使用,因为内存会不足。

  可以传入一个整数。如果传入一个十,二进制打开的时候表示读取十个字节,非二进制打开表示读取十个字符。

f = open('file.txt','r',encoding='utf-8')
print(f.read())
f.close()

  2)readline():可以传入一个参数,表示最多返回及格字符。(非二进制打开是字符,否则是字节),不传参数默认读出一整行。

f = open('file.txt','r',encoding='utf-8')
print(f.readline())
f.close()

  3)readlines():读出文件内所有的行。并把每一行组织在列表了返回,每一行就是一个元素。

f = open('file.txt','r',encoding='utf-8')
print(f.readlines())
f.close()

  注意,以上三种方法不论是哪一种,都把句子头尾的换行符和空格,占位符什么的都读除了,如果不进行必要的处理可能会发生意想不到的错误。

三、文件的写

1)write():只能传入字符串类型的数据。否则报错。

str = 'abcd'
f = open('file.txt','r',encoding='utf-8')
f.write(str)

2)writelines():参数是序列,例如列表;将自动迭代序列内容并写入文件。注意,除非序列内用能使文本换行的内容否则不会换行。

lis = ['acd','acd']
f = open('file.txt','w',encoding='utf-8')
f.writelines(lis)

四、其他操作

1、writable()

  判断文件是否可写,返回True或者False。

2、readable()

  返回文件是否可读,返回True或者False。

3、seek(offset,whence)

  offset :开始的偏移量,也就是代表需要移动偏移的字节数

  whence可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起

4、seekable()

  返回在文件中是否可以移动光标。

posted @ 2019-03-04 20:56  Darius-xiong  阅读(170)  评论(0编辑  收藏  举报