• 文件操作


    一、文件操作

        1.打开方式分为两种:绝对路径打开,相对路径打开

            d:asd.txt    asd.txt

        2.编码方式:utf-8、gbk。。。

        3.操作方式:只读、只写、追加、读写、写读。。。

      读:r、rb、r+

        打开一个文件:

          f = open('file',mode='r')
          print(f.read())
          f.close()

        在文件里追加内容:

          f = open('file',mode='r+',encoding='utf-8')
          print(f.read())
          f.write('123')
          f.close()

           ##这里会遇到个问题:先读再写写的内容读不出来,要是先写再读就会输出空。为什么会出现这个问题,原因是指针没有从头开始。

           解决办法:加一行:f.seek(0)  就可以让指针到头

          f = open('file',mode='a+',encoding='utf-8')
          f.write('123')
          f.seek(0)
          print(f.read())
          f.close()

        修改文件内容:

          f = open('file',mode='ab')
          f.write('123'.encode('utf-8'))
          f.close()

      写:w、w+、wb

        w只写,把文件内容都清空,然后再写入,如果没有这个文件则自动创建文件。

        其他跟r+、rb用法一样。

          f = open('file',mode='w',encoding='utf-8')
          f.write('123')
          f.close()

      追加:a、a+、ab

        a在文件内容后追加内容。其他跟r一样。

          f = open('file',mode='a',encoding='utf-8')
          f.write('123')
          f.close()

      其他功能:  

       f.tell() 输出光标位置

       f.seek()移动光标到第几个字节(中文3个字节,如果移动2个则报错)。f.seek(0,2) 移动到结尾。

        f = open('file',mode='r+',encoding='utf-8')
        print(f.tell())
        f.seek(4)
        print(f.tell())
        f.close()

       f.readline()一行一行的读文件内容(只读第一行)

       f.readlines()每一行当成列表中的一个元素,添加到list中,可以for循环读,会有换行用strip去掉。

        f = open('file',mode='r+',encoding='utf-8')
        line = f.readlines()
        for i in line:
        print(i.strip())
        f.close()

      f.truncate(3)  #保留前3个字节(一个中文汉字)

      另一种读取方法:with

        with open('file',mode='a+',encoding='utf-8') as f:
        f.write('asd')

      

          

  • 相关阅读:
    Codeforces 798C
    Codeforces 777E
    Codeforces 801C Voltage Keepsake(二分枚举+浮点(模板))
    【NOIP 2017】宝藏
    利普希茨
    【NOIP2008】双栈排序
    捕老鼠
    失格
    【JZOJ4307】喝喝喝
    Blocks
  • 原文地址:https://www.cnblogs.com/tsboy/p/8111097.html
Copyright © 2020-2023  润新知