2020 python学习第九天————文件操作续

1 with上下文管理

  with open('a.txt', mode='rt', encoding='utf-8') as f1 , open('b.txt', mode='rt', encoding='utf-8') as f2:

    # 自动调用f1.close()、f2.close()回收操作系统

 

2.1 b模式:读写内容都是以bytes为单位

  t模式只能用于读文本文件,它会对文件进行解码

  b模式可用于读所有的文件,不会进行任何其他操作直接读出二进制数

2.2 decode

  with open('a.txt', mode='rb') as f:

    data = f.read()

    print(data.decode("utf-8"))

    b模式下对文件读取并解码

 

3. +模式

  可读可写模式,可以省略t,默认就是t模式,读写都是以字符串为单位

    r+  (r+t) , w+  (w+t) , a+  (a+t) 

  可读可写模式,b模式下读写都是以bytes二进制为单位

    r+b , w+b , a+b

 

4 文件的操作方式

  4.1 readable

    判断文件是否可读

  4.2 readline,readlines

    readline:一次读取一行

    readlines:相当于逐行循环

      l = f.readlines()  ==   l = [ ]

                  for line in f:

                    l.append(line)

  4.2 writelines

    lines=["1111\n","222\n","333\n"]

    f.writelines(lines)

      循环取值写入文件

  4.3 name

    获取文件的路径

  4.4 flush

    f.flush()

      如果程序走但文件没有内容是正常现象,这是io优化的结果

      flush是让内容立即写入文件,但会降低程序的运行效率

posted @ 2020-06-11 16:32  最冷不过冬夜  阅读(104)  评论(0编辑  收藏  举报