文件处理的方法

一、读取相关操作

1.readline() (一次性只读取一行)

with open(r'g.txt',mode='rt',encoding='utf-8') as f:
    res1=f.readline()# 第一行的代码
   res2=f.readline()# 第二行的代码
    print(res1)

2.readlines()(一次性读取多行)

with open(r'g.txt',mode='rt',encoding='utf-8') as f:
    res=f.readlines()
    print(res)

ps:f.read()与f.readlines()都是将内容一次性读入内存,如果内容过大会导致内存溢出。

二、写入相关操作

  1. f.writelines() (一次写入多行)

    with open('h.txt',mode='wt',encoding='utf-8') as f:
    l=['11111\n','2222','3333']
    f.writelines(l)

ps:需要手动换行

2.b模式写入

with open('h.txt', mode='wb') as f:
l = [
'1111aaa1\n'.encode('utf-8'),
'222bb2'.encode('utf-8'),
'33eee33'.encode('utf-8')
]
# b模式写入需要指定编码

3.

'上'.encode('utf-8') 等同于bytes('上',encoding='utf-8')

with open('h.txt', mode='wb') as f:
l = [
    bytes('上啊',encoding='utf-8'),
    bytes('冲呀',encoding='utf-8'),
    bytes('小垃圾们',encoding='utf-8'),
]
f.writelines(l)

4.如果是纯英文字符,可以直接加前缀b得到bytes类型

l = [
   b'1111aaa1\n',
   b'222bb2',
   b'33eee33'
]

5.flush: (刷新——立即执行该操作)

with open('h.txt', mode='wt',encoding='utf-8') as f:
    f.write('哈')
    f.flush()

了解部分

with open('h.txt', mode='wt',encoding='utf-8') as f:
    print(f.readable())
    print(f.writable())
    print(f.encoding)
    print(f.name)

print(f.closed)

posted @ 2020-03-21 19:56  江湖有梦  阅读(246)  评论(0编辑  收藏  举报