zoukankan      html  css  js  c++  java
  • 文件操作

    一、打开文件

    1、f = open('text','w',enconding = 'utf-8')

      f.close()

    2、with open('text','w',enconding = 'utf-8') as f:

        pass

    1、2功能一样,不过推荐使用2,不需要自己关闭文件。

    二、各种模式详解

    1、基本模式

      'r' :只读,如果文件不存在,会报错

      'w':只写,如果文件存在,则清空文件后开始写。文件不存在,创建文件

      'a' :只写,在文件尾追加,如果文件不存在,创建文件

      'b' :二进制模式

      + :更新读写模式(如只有读模式,加+号可以变成读写模式),可以与a,w,r拼接。

    2、组合模式

      'r+':读写模式,如果文件不存在,会报错。先写再读,在文件开头写,会覆盖之前的内容。先读后写,则在文件尾写

      'w+':写读模式,如果文件存在,则清空文件后开始写读,文件不存在,创建文件。先写后读,如果需要读,默认在文件尾,需把光标(用seek函数)移动到要读的位置

      'a+':追加读写模式,如果文件存在,则追加模式读写,文件不存在,创建文件。在文件尾写,如果需要读,默认在文件尾,需把光标(用seek函数)移动到要读的位置

    ---------以二进制模式读写,同上面的操作,不能加编码模式--------------

      'r+b':二进制读写

      'a+b':二进制追加读写

      'w+b':二进制写读

    三、读写文件操作

    1、f.read() 读取整个文件的内容

    2、f.readline()读取一行

    3、f.readlines()读取所有行,并以列表形式返回

    4、利用for循环,with open('text','r',enconding = 'utf-8') as f:

              for line in f:

                print(line)      #循环打印行

    5、f.tell()得到光标目前所在位置

    6、f.seek(offset[,whence])             

    将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,

    whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。其中1和2只能以二进制模式打开时才有用

    7、f.flush()  将缓冲区内容写进硬盘

    8、f.isatty() 文件是否是一个终端设备文件(unix系统中的)

    9、f.truncate([size])                   把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

    10、writelines(seq)            #把seq的内容全部写到文件中(多行一次性写入)。如f.writelines(['123','abc']),注意列表中的元素只能是字符串。

    11、f.fileno() 方法返回一个整型的文件描述符(file descriptor FD 整型),可用于底层操作系统的 I/O 操作。

    三、当你对文件内容进行添加,修改,删除,文件并不会自动前移或者后移,你只能把文件读出来再进行相应的操作(边读边写或者把文件都读出来再写),下面来个修改文件中'测试' - >'验证测试'

    with open('text3','r',encoding='utf-8') as f,
    open('text4','w',encoding='utf-8') as f1:
    for line in f:
    if '测试' in line:
    line = line.replace('测试','验证测试')
    f1.write(line)
  • 相关阅读:
    linux安装软件的几种方式
    linux目录
    linux远程连接
    linux分区
    linux特殊符号
    sed
    rest_framework认证流程
    一些面试题目
    算法之二分法
    算法之动态规划
  • 原文地址:https://www.cnblogs.com/zj-luxj/p/6826710.html
Copyright © 2011-2022 走看看