python学习第三天回顾之文件

一,编码补充:

  内存中用的是unicode编码,(程序都需要加载到内存才能运行,所有内存应该是尽可能的保证程序运行速度)

  硬盘或网络传输用的是UTF-8,网络I/O延迟或磁盘I/O延迟要远大于UTF-8的转换延迟,而且I/O应该是尽可能的节省带宽保证数据传输的稳定性。

    转换形式:

      文件在硬盘中存储的编码格式--->内存中所用的编码格式----> 打开文件时所用软件的编码格式

二、文件:

  python中可以用open()函数来打开文件。

  格式:

    open(filename,打开方式,编码方式)

  示例:

1 f = open("abc.txt",r,encoding="utf-8")
2 # 将打开的abx.txt的文件,读取后给f,放入内存中
3 data = f.read() #由f.read()读取文件内容
4 f.close()  #有打开就有关闭,如果不关闭,将一直在内存中存放。

  读写模式:

    r:  只读模式打开(如果文件不存在,则报异常)

    w:  可写模式打开(如果文件不存在则创建文件)

    a:  追加(写)模式打开(如果文件不存在则创建文件)

    r+:  可读,写文件(如果文件不存在,则报异常)

    w+:  可写,读文件(如果文件不存在则创建文件)

    a+:  追加,读模式(如果文件不存在则创建文件)

    也可以用 rb,wb,ab,rb+,wb+,ab+方式打开,这样则是以二进制方式打开。

  file.seek()函数:  使光标移动到某个位置

    参数: seek(offset[,whence])  offset 一般为正数,表示将光标移到到第几个位置,若使用whence参数,则只能有0,1,2这三个参数值,0表示将光标移到开头,1表示光标所在的当前位置,2表示光标移到到末尾。

  file.read([size]):  从文件中读取内容。  若使用size则表示读取size的长度 。如:read(3)  读取3个字符。  

  file.readline([size]):  从文件中读取一行。  若使用size则表示读取size的长度 。如:readline(3)  读取这一行的前3个字符。

  file.readlines([size]):  从文件中读取所有行。  若使用size则表示读取开始到size所在的列表 。如:readlines(3)  读取第一行,并以列表形式返回。

  file.readable():   检测是否以读文件的形式打开的文件。

  file.write():  写入函数内的字符串内容,只能是字符串

  file.writelines():  写入的字符串,可以是列表形式字符串,如: writelines(["123","abc","123"])

  file.writeable():  检测是否以写文件的形式打开的文件

  file.tell():  返回光标在文件当前位置

  file.truncate([size]):  截取文件,截取的字节通过size指定,默认为当前文件位置。

  示例:  

    修改文件:

      import os

       f  = open("abc.txt","r",encoding="utf-8")

      write_f=openg("bcd.txt","w",encoding="utf-8")

      for i in readlines():

        if "123123" in i:

          i="234369"

        write_f.write(i)

        print(i)

      f.close()

      write_f.close()

      os.remove("abc.txt")

      os.rename("bcd.txt","abc.txt")

  另一种打开文件方式:

   1、 with open("abc.txt","r",encoding="utf-8") as read_f:

      read_f.seek(0,2)

      While True:

        line = read_f.readline().strip()

        if line:

          print("新增加一行",line)

    2、  with open("abc.txt","r",encoding="utf-8") as read_f,\

            open("abc.txt","w",encoding="utf-8") as write_f:

            data=read_f.read()

            write_f.write(data)

       以读的模式打开文件进行读取,同时以写的模式打开文件,对文件进行写入。

posted @ 2017-05-20 00:15  冠彭  阅读(108)  评论(0)    收藏  举报