文件操作

Posted lgw1171435560

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作相关的知识,希望对你有一定的参考价值。

文件操作的几种模式:

r,r+,w,w+,a,a+,rb,wb,ab,r+b,w+b,a+b,

f.close()#关闭句柄

f.flush()#刷新

r+ 模式下,如果读取了内容,不论读取内容多少,光标显示的是多少,在写入或着操作文件的时候都是在结尾进行的操作.!

一.只读模式(r,rb)   #rb读出来的是bytes类型,再rb模式下,不能选择encoding

 

 rb的作?: 在读取非?本?件的时候. 比如读取MP3. 图像. 视频等信息的时候就需要?到
rb. 因为这种数据是没办法直接显?出来的.  在后?我们?件上传下载的时候还会?到. 还有.我们看的直播. 实际上都是这种数据.

 

 

 

.写模式(w,wb)     #如果没有文件,则会创建文件,如果文件存在,则将原文件内容删除,重新写入

    #wb模式下可以不指定打开文件的编码,但写文件的时候必须将字符串转化成为"utf-8"的bytes数据
.追加(a,ab)          #如果没有,就创建文件夹,写入的内容会追加在文件的结尾

.读写模式(r+,r+b)      #此模式必须是先读,后写入因为光标默认在开头,读完了光标就到了文件末尾,写入才不会覆盖*****

五.写读(w+,w+b)  #先将所有内容清空,后写入,最后读取,如果不主动移动光标到头,就会为空

六.追加读(a+)  #如果没有,就创建文件夹,如果有追加读完,想读还允许移动光标读取,

.其他操作:

seek(y,x)    #移动光标的方法,x有三个值,0,1,2,分别代表开头,现在位置,末尾;y代表的是移动多少字节符,一个中文3个字节符,英文都是1个

tell()  ,print(f.tell())        #查看光标现在的位置

truncate()  #截断文件

八.覆盖(修改)文件

import os 
with open("?小娃娃", mode="r", encoding="utf-8") as f1,        open("?小娃娃_new", mode="w", encoding="UTF-8") as f2:    
    for line in f1:
        new_line = line.replace("?大?白梨梨", "冰糖葫芦")                
        f2.write(new_line) 
os.remove("?小娃娃")    # 删除源?文件 
os.rename("?小娃娃_new", "?小娃娃")     # 重命名新?文  

 

九,相对路径和绝对路径:

相对路径:相对于当前程序所在的文件夹, 如果再文件夹内. 随便找. 直接写名字

  如果不在这个文件夹内. 可能需要出文件夹或者进文件夹

    出文件夹  ../

    进文件夹  文件夹/

 

绝对路径:从磁盘根目录寻找路径,一般只有在记录日志的时候可以用到绝对路径

                                                                                                                                                                       

 




以上是关于文件操作的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode 如何操作用户自定义代码片段(快捷键)

代码片段 - Golang 实现集合操作

Apollo Codegen 没有找到生成代码的操作或片段

VSCode自定义代码片段——.vue文件的模板

操作栏标签片段中的片段?