文件的操作

1 对文件操作流程:

  1 打开文件,得到文件句柄并赋值给一个变量

  2 通过句柄对文件进行操作

  3 关闭文件

2 基本操作:

  f=open("路径/文件","打开模式",encoding="字符编码") 

  注:f 别名文件句柄,它包含文件的文件名、文件的字符集、文件的大小、文件在硬盘上的起始位置。

  打开模式:

  1 r 只读模式

  2 w 只写模式。不可读,不存在则创建,存在则删除内容。

  3 a (append)追加模式

  4 r+ 以读写模式打开,能读且能追加

  5 w+ 以写读模式打开,先创建一个文件,没什么卵用

    6 a+ 以读写模式打开,追加读写

    7 rb 以二进制读模式打开,例如网络传输文件、下载视频

  8 wb 以二进制格式写文件,例 f.write("liupeng".encode()) 只能以二进制形式写入,且需要转为默认的编码格式。注意会删除原有内容。

  注:看起来是字符串,实际上是以二进制编码来处理的。

  9 rU 读取时,可以将\r \n \r\n自动转换成\n

  特别注意:上述模式只在python3.x中区别比较大,而在2.x中没多大区别!

  常用方法:

  1 fp.read([size])  size 为读取的长度,以byte为单位。如果没有定义siez,就会将整个文件内容读到内存中。

  2 fp.readline([size]) 逐行读取,如果定义了size ,可能只读到一行的一部分。

  3 fp.readlines([size]) 把文件每一行作为一个list的一个成员,并返回这个list.如果定义了size,它可能只读到文件的一部分。如果没有定义size,则会将内容全部读取到内存中。

  4 fp.write(str),写入str,但不会在str后加上一个换行符。

  5  fp.writeline(seq) 吧seq的内容全部写到文件中(多行一次性写入)。它只是写,不会在每行后面加上任何东西。

  6 fp.close() 关闭文件

  7 fp.tell() 返回文件操作标记的当前位置,以文件的开头为原点。

  8 fp.seek(offset[,whence]) 将文件打开操作标记移到offset的位置,这个offset一般是相对于文件的开头来计算 。如果whence为0表示从头开始计算,1表示以当前位置为原点计算,2表示文件末尾为原点进行计算。

  with as 的用法:python2.5中开始引入一种与异常处理相关的功能。with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。

  python 使用with as的语法,当python执行这一句时,会调用__enter__函数,然后把该函数return的值传给as后指定的变量。之后,python会执行下面的语句块。最后不论在该语句出现了什么异常,都会在离开时执行__exit__.

1 with open("123.txt","r",encoding="utf-8") as f:
2     for line in f:
3         print (line)

  注意:在python2.7以后,with又支持同时对多个文件的上下文进行管理。

 with open("123.txt","r",encoding="utf-8") as f ,\  # 一行至多80个字符
     open("321.txt","r",encoding="utf-8") as f1; 

 

posted @ 2017-03-16 18:28  会开车的好厨师  阅读(155)  评论(0)    收藏  举报