python基础06/文件操作

python基础06/文件操作

内容纲要

1.文件操作

1.文件操作

# "萝莉小姐姐电话号.txt"
# 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(文件句柄)

2.文件的r,w,a

 r操作:
# f = open("萝莉小姐姐电话号",mode="r",encoding="utf-8")
# print(f.read())    #全部读取
# print(f.read(5))   #按照字符进行读取
# print(f.read())

# print(f.readline())  # 读取一行内容,自动换行
# print(f.readline())  # "常鑫你就是大帅比\n"
# print(f.readline().strip()) #去除换行符

# print(f.readlines())  # 一行一行的读取,存放在列表中

# 解决大文件:
# for i in f:
#     print(i)  # 本质就是一行一行进行读取

# print(f.readline())
# print(f.readline())
# print(f.readline())

 w操作:
 w分为两步:
     1.先清空文件
     2.写入文件

# f = open("萝莉小姐姐电话号","w",encoding="utf-8")
# f.write("123456789\n")
# f.write("123456789\n")
# f.write("123456789\n")
# f.write("123456789\n")

 路径:
 1.绝对路径 -- C:\user\meet\python24\萝莉小姐姐电话号
 2.相对路径

 绝对路径方式打开文件
# f = open("F:\s24\day08\萝莉小姐姐电话号","r",encoding="utf-8")
# print(f.read())

 相对路径方式打开文件
# f = open("../day03/萝莉小姐姐电话号","r",encoding="utf-8")
# print(f.read())
# ../ 返回上一层

# f = open(r"C:\user\net\s24\day03\萝莉小姐姐电话号","r",encoding="utf-8")

 路径转义:
#     1."\\"
#     2.r"C:\user\net"
 推荐使用相对路径 (*****)

# s = "[1,'2',3,4]"
# print(s)
# print(repr(s))  # repr -- 显示数据原生态

 a操作:  追加写
# 在源文件的基础上进行添加
# f = open("../day03/萝莉小姐姐电话号","a",encoding="utf-8")
# f.write("138383848\n")
# f.write("138383850\n")

3.文件中的rb,wb,ab

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

 wb
# 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())
# # 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())



 其他操作:
# 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 os
 os.rename("萝莉小姐姐电话号","萝莉小姐姐电话号.bak")
 os.rename("萝莉小姐姐电话号.txt","萝莉小姐姐电话号")

 with open("萝莉小姐姐电话号","r",encoding="gbk")as f:
     pass # 缩进里操作文件
 print(f.read())  # 文件及已经关闭了

4.今日总结

"""
# 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"  -- 推荐使用
            
"""

猜你喜欢

转载自www.cnblogs.com/liubing8/p/11198672.html