博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 第八章 r w a 等文件操作
阅读量:5166 次
发布时间:2019-06-13

本文共 3623 字,大约阅读时间需要 12 分钟。

# "通讯录"# open()  # 打开# file  # 文件的位置(路径)# mode  # 操作文件的模式# encoding # 文件编码方式# f  # 文件句柄#f = open("通讯录",mode="r",encoding="utf-8")print(f.read())f.close()## 操作文件:#     1. 打开文件#     2. 操作文件#     3. 关闭文件## 文件操作的模式:# r,w,a (重要)# rb,wb,ab (次要)# r+,w+,a+ (没啥用)## f = open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding="文件的编码") # 内置函数# f(文件句柄)

rb,wb,ab

# rb# rb 读出来的数据是bytes类型,在rb模式下,不能encoding字符集f1 = open("1.jpeg","rb") # 打开图片print(f1.read())   # 全部读取print(f1.read(3))  # 按照字节读取# 输出字节# b''## wb 没有文件创建一个文件# wb模式下,不可以指定打开文件的编辑,但是写文件的时候必须将字符串转换成utf-8的bytes数据f = open("3.jpg","wb") # 没有文件创建一个文件f.write(f1.read())# ab 没有文件创建一个文件f = open("2.jpg","ab")f.write("你好啊".encode("utf-8"))f = open("2.jpg","rb")print(f.read())# +操作# r+: 读写 - 先读后写## 错误的操作 (坑,不能先写后读)f = open("萝莉小姐姐电话号","r+",encoding="utf-8")f.write("常鑫你太美")print(f.read())# 正确的操作:# 打开一个文件,写入"常鑫你太美"f = open("萝莉小姐姐电话号","r+",encoding="utf-8")print(f.read())f.write("常鑫你太美")# w+ 清空写,读f = open("萝莉小姐姐电话号","w+",encoding="utf-8")f.write("常鑫你太美")print(f.tell())# 使用utf-8 ,一共占用了15个字节f.seek(15)         #print(f.tell())print(f.read())# a+ 追加写,读f = open("萝莉小姐姐电话号","a+",encoding="utf-8")f.write("常鑫你太美")print(f.tell())   # 字节数print(f.seek(0,0))  # 0将光标移动到文件的头部print(f.read()) # 常鑫你太美常鑫你太美# 输出# 30# 0# 常鑫你太美常鑫你太美# 其他操作:# tell 查看光标    --- 返回的是字节数# seek 移动光标#     1.seek(0,0)  -- 移动到文件的头部#     2.seek(0,1)  -- 当前位置#     3.seek(0,2)  -- 移动到文件的末尾#     4.seek(3)    -- 按照字节进行移动(按照编码集,自己进行计算)f = open("萝莉小姐姐电话号","r",encoding="gbk")print(f.read(3)) # 字符f = open("萝莉小姐姐电话号","rb")print(f.read(3))   # 字节f = open("萝莉小姐姐电话号","r",encoding="gbk")print(f.read(3))     # 字符# 错误操作f = open("萝莉小姐姐电话号","r",encoding="gbk")f.seek(-1)print(f.read())# 文件修改f = open("萝莉小姐姐电话号","r",encoding="gbk")s = f.read()s1 = s.replace("你太美","吃煎饼")f1 = open("萝莉小姐姐电话号","w",encoding="gbk")f1.write(s1)# with 关键字 open("萝莉小姐姐电话号","r",encoding="gbk") as f:#   文件操作的具体内容# w和a 检测有文件就操作,没文件就创建with open("萝莉小姐姐电话号","r",encoding="gbk")as f,\        open("萝莉小姐姐电话号.txt","w",encoding="gbk")as f1:    for i in f:        s1 = i.replace("大烧饼","井盖")        f1.write(s1)import osos.rename("萝莉小姐姐电话号","萝莉小姐姐电话号.bak")os.rename("萝莉小姐姐电话号.txt","萝莉小姐姐电话号")with open("萝莉小姐姐电话号","r",encoding="gbk")as f:    pass # 缩进里操作文件print(f.read())  # 文件及已经关闭了

总结

"""# 1.文件操作:open  -- 打开文件file  -- 文件路径mode  -- 操作文件的模式encoding -- 文件的编码集打开文件操作文件关闭文件# r,w,a (******)    # r: 读文本        read()  全部读取        read(3) 看文件的操作方式 r/w/a 字符        readline 读取一行(自带换行符)        readlines() 一行一行读取存放在列表中    # w:清空,写        open("xxx","w",encoding="utf-8")  # 进行清空        write()  只能写字符串    # a:追加        在文本的末尾进行写入        write()rb,wb,ab(****)    #rb:读字节        read()  全部读取        read(3) 看文件的操作方式  rb/wb/ab 字节        readline 读取一行(自带换行符)        readlines() 一行一行读取存放在列表中    wb:清空,写        open("xxx","wb")  # 进行清空            write()  只能写字节    ab:追加        open("xxx","ab")            write()  只能写字节r+,w+,a+ (r+)    r+:读写        错误的方式是写读        先读后写    w+:清空写,读        1.清空文件        2.读取内容(默认读取的是空)        3.移动光标    a+:追加写,读        1.先写后读        2.读取内容(默认读取的是空)        3.移动光标        # 注意点: (a,ab,a+)将光标移动到某个位置进行,写入的时候还是在文件的末尾其他操作:    tell()  查看光标返回的是字节    seek() 移动光标        seek(0,0) 移动文件头部        seek(0,1) 当前位置        seek(0,2) 移动文件末尾        seek(3)  # 按照字节进行计算 (计算方式根据编码计算)    with open("文件路径","操作模式",编码")as f:        操作文件    with open的好处:        1.可以同时打开多个文件        2.能够自动关闭文件    修改文件内容:        1.创建一个新的文件        2.将文件中的内容进行替换        3.替换后的内容写入新文件中        4.改变文件名    路径:        绝对路径: 从磁盘根部进行查找        相对路径: ../返回上一级  --推荐使用        转义:            1."C:\\user\\ner"            2. r"C:\user\ner"  -- 推荐使用            """

转载于:https://www.cnblogs.com/zhangshan33/p/11197525.html

你可能感兴趣的文章
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>
浏览器对属性兼容性支持力度查询网址
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
Program exited with code **** 相关解释
查看>>
植物大战僵尸中文年度版
查看>>
26、linux 几个C函数,nanosleep,lstat,unlink
查看>>
投标项目的脚本练习2
查看>>
201521123107 《Java程序设计》第9周学习总结
查看>>
Caroline--chochukmo
查看>>
iOS之文本属性Attributes的使用
查看>>
从.Net版本演变看String和StringBuilder性能之争
查看>>
Excel操作 Microsoft.Office.Interop.Excel.dll的使用
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
HTML5简单入门系列(四)
查看>>