python文件操作

前言

迟到的青年节快乐,哈哈哈,这下收假了,逍遥结束,学习继续,今天分享分享python在文件操作方面的一些知识点

文件操作

  • 操作文件分为三步

    • 打开文件
    • 操作文件
    • 关闭文件
  • example:

    f = open(“文件的路径(文件放的位置)”, mode=“操作文件的模式”, encoding=“文件的编码”) #内置函数

    f文件句柄

    f = open("你好", mode="r", encoding="utf-8")
    print(f.read())
    f.close()
    
  • 文件操作的模式

    • r,w,a(重要)
    • rb,wb,ab(次要)
    • rt,wt,at

r操作

f = open("你好", mode="r", encoding="utf-8")
print(f.read()) #全部读取
print(f.read(3))  #按照字符进行读取
print(f.readline()) #读取一行的内容\n(自动换行)
print(f.readline()) #文件读过以后会接着上次读取的位置继续读取
print(f.readlines()) #一行一行的读取,存放在列表中
#解决大文件
for i in f:
    print(i)  
#本质就是一行一行进行读取,带换行符

w操作

  • w分为两步:
    1、先清空文件
    2、写入文件
f = open("你好", mode="w", encoding="utf-8")
f.write("123456\n")
f.write("79749\n")  #按行写入,需换行符
  • 路径
    • 1、绝对路径 – C:\Users\ASUS\PycharmProjects\pythonProject1\08day\你好
    • 2、相对路径 --即相对此层#推荐使用相对路径(兼容性高)
  • 路径转义
    • “\\”
    • r"C:\user\net" --repr 显示数据的原生态

a操作

追加写 在源文件的基础上进行添加

 f = open("你好", mode="a", encoding="utf-8")
 f.write("464")

rb操作

f1 = open("1.jpg", mode="rb")
print(f1.read())  #全部读取
print(f1.read(3)) #按照字节读取

wb操作

f = open("3.jpg", mode="wb")
f.write(f1.read())

ab操作

f = open("3.jpg", "ab")
f.write("你好啊".encode("utf-8"))

其实这三个操作与w,r,a操作类似,基于字节之上

+操作

r+:读写 先读后写

'''
错误的操作:
f = open("你好", mode="r+",encoding="utf-8")
f.write("daafaf")
print(f.read())
'''
f = open("你好", mode="r+", encoding="utf-8")
print(f.read())
f.write("daafaf") 先读后写

w+: 清空写,读

f = open("你好", mode="w+", encoding="utf-8")
f.write("fawf")
print(f.read())

a+ 追加写,读

f= open("你好", mode="a+", encoding="utf-8")
f.write("faew")
print(f.tell()) #字节数
f.seek(0)  #0 将光标移到到文件的头部
print(f.read())

其他操作

  • tell 查看光标 返回的是字节数

  • seek 移动光标

  • seek(0,0) --移动到文件的头部
    seek(0,1) --当前位置
    seek(0,2) --移动到文件的末尾
    seek(3)   --一个参数,按照字节进行移动 
    当使用seek时,取值要注意编码集
    eg:
    f = open("你好",mode="r",encodeing="gbk"
    若文件中存储全为汉字
    f.seek(3) 报错
    f.seek(4) 正常运行  因为汉字在gbk编码中字节为2
    
  • 文件修改 with关键字

    • with open("你好啊", "r", encoding="utf-8")as f:
           文件的具体操作
      
    • 当我们想将文件的ok全部变为ko时

    • 不使用with关键字

    • f = open("你好啊", "r", encoding="utf-8")
      s = f.read()
      s1 = s.replace("ok", "ko")
      f1 = open("你好啊", "w", encoding="utf-8")
      f1.write(s1)
      
    • 使用with关键字

    • w,a 检测有文件就操作,没文件就创建
      with open("你好啊", "r", encoding="utf-8")as f, open("你好啊.txt", "w", encoding="utf-8")as f1:
          s = f.read()
          s1 = s.replace("ok", "ko")
          f1.write(s1)
      '''
      当文件大时
      	for i in f: 
      		s1 = i.replace("ok","ko")
              f.write(s1)
      '''
      import os
      os.rename("你好啊", "你好啊.bak")
      os.rename("你好啊.txt", "你好啊")
      
  • with关键字比起常规操作,备份文件,自动关闭文件,减少了一些文件多开,合并等的问题

  • 自动关闭,文件操作要在缩进中进行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Acco_30_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值