分分钟钟学会Python - 第四章 文件操作

时间:2023-01-01 11:53:24

4.1 文件基本操作

obj = open('路径',mode='模式',encoding='编码') obj.write() # 写入 obj.read() # 读取 obj.close() #关闭

4.2 打开模式

  • r / w / a 【只读只写字符串】 *
  • r+ / w+ / a+ 【可读可写字符串】
  • rb / wb / ab 【只读只写二进制】 *
  • r+b / w+b / a+b 【可读可写二进制】

4.3 操作

  • read() , 全部读到内存

  • read(1)

    • 1表示一个字符

      obj = open('a.txt',mode='r',encoding='utf-8') data = obj.read(1) # 1个字符 obj.close() print(data)
    • 1表示一个字节

      obj = open('a.txt',mode='rb') data = obj.read(3) # 1个字节 obj.close()
  • write(字符串)

    obj = open('a.txt',mode='w',encoding='utf-8') obj.write('中午你') obj.close()
  • write(二进制)

    obj = open('a.txt',mode='wb') # obj.write('中午你'.encode('utf-8')) v = '中午你'.encode('utf-8') obj.write(v) obj.close()
  • seek(光标字节位置),无论模式是否带b,都是按照字节进行处理。

    obj = open('a.txt',mode='r',encoding='utf-8') obj.seek(3) # 跳转到指定字节位置 data = obj.read() obj.close() print(data) obj = open('a.txt',mode='rb') obj.seek(3) # 跳转到指定字节位置 data = obj.read() obj.close() print(data)
  • tell(), 获取光标当前所在的字节位置

    obj = open('a.txt',mode='rb') # obj.seek(3) # 跳转到指定字节位置 obj.read() data = obj.tell() print(data) obj.close()
  • flush,强制将内存中的数据写入到硬盘

    v = open('a.txt',mode='a',encoding='utf-8') while True: val = input('请输入:') v.write(val) v.flush() v.close()

4.4 关闭文件

文艺青年

v = open('a.txt',mode='a',encoding='utf-8') v.close()

二逼

with open('a.txt',mode='a',encoding='utf-8') as v: data = v.read() # 缩进中的代码执行完毕后,自动关闭文件

4.5 文件内容的修改

with open('a.txt',mode='r',encoding='utf-8') as f1: data = f1.read() new_data = data.replace('飞洒','666') with open('a.txt',mode='w',encoding='utf-8') as f1: data = f1.write(new_data)

大文件修改

f1 = open('a.txt',mode='r',encoding='utf-8') f2 = open('b.txt',mode='w',encoding='utf-8') for line in f1: new_line = line.replace('阿斯','死啊') f2.write(new_line) f1.close() f2.close()
with open('a.txt',mode='r',encoding='utf-8') as f1, open('c.txt',mode='w',encoding='utf-8') as f2: for line in f1: new_line = line.replace('阿斯', '死啊') f2.write(new_line)
小编相信,那些很自律的人肯定学习很厉害,但很多做不到的人也不要妄想随便立flag或者计划表就能做到自律,做到坚持学习。