• 文件操作


    1.文件操作初识

    操作文件的方式:

    f = open("文件路径","mode="模式",encoding = "编码)

    open: 调用操作系统打开文件.

    mode: 对文件的操作方式.

    encoding: 文件的编码,而存储编码一定要统一.

    在国内: win :gbk Linux: utf- 8 Mac: utf- 8

    最常用的就是utf - 8

    f 叫做文件句柄-------操作文件时相当于一个东西的把手

     

    文件操作都有:

    读: r

    写: w(这个是清空了重新写) , a(这个则是在后面追加着写)

    读: rb

    写: wb, ab

    2.文件的读

    : r rb r+ r+b

    r: 这种读的模式是文件全部读完之后,接着再次读取就没有内容

    f = open ("a",mode = "r",encoding = "gbk")

    content = f . read() 全部读取

    c1 = f . read(4) 这个值读取字符,数字代表读取几个字符

    print(f . readline(3)) 读取一行中的几个字符,数字代表读取着行中的几个字符

    print(f.readlines()) 这个是一行一行读取,存储在列表中 代表换行

    路径

    F:a111.txt 这个是绝对路径,从磁盘的根处查找

    相对路径 :相对于当前文件进行查找

    import os

    print(os.getcwd()) 这个是查看当前工作路径的操作

     

    当文件特别大时,要防止内存溢出,所以要一行一行读取

    for i in f:

    print(i) 迭代读取

    3.文件的写

    : w:清空写,

    1.先判断有没有文件存在,文件存在清空文件,文件不存在创建文件

    2.写入内容

    a: 追加写,在文件的末尾添加

    w 在进行写的操作时,一般分了两步:

    没有文件,创建文件,有文件清空文件再写入

     

    f = open("day08",mode = "w",encoding = "utf - 8")

    f.write("123")

    f.close() 关闭文件

     

    操作文件一般:

    1. 打开文件

    2. 操作文件

    3. 关闭文件

     

    f = open("a",mode = "r",encoding = "gbk")

    print(f.read())

    f.close() 关闭文件后就不能在进行读取了

     

    f = open("a",mode = "a",encoding = "gbk")

    f.write("123")

    这个是在文件末尾添加

    4.读以及写非文本文件

    f = open("1.jpg",mode="rb")

    rb: 不能指定编码,读非文本文件(不能指定编码意思是不能指定gbk之类的,encoding不能写)

    这个时候读是按字节读出来的

    wb. ab 不能指定编码,写非文本文件

    print(f.read()) read() 全部读取

     

    import requests

    ret = requests.get("http://www.521609.com/uploads/allimg/151124/1-1511241G251317.png")

    f = open("2.jpg",mode="wb")

    f.write(ret.content)

    f.close() 这是一个小的爬虫

    5.文件的+模式

    r:读 r+: 读写

    w:写 w+:写读

    a: 写 a+:写读

    r+:读写 先读后写

    正确的格式: -----后期开发中使用频率不是很高

    f = open("day",mode="r+",encoding="utf-8")

    print(f.read())

    f.write("你好啊")

     

    错误示范----这是因为先写的话后面再读的时候光标就会在最后的地方,然后就读取不到内容

    f = open("day8",mode="r+",encoding="utf-8")

    f.write("你好啊")

    print(f.read()

     

    w+ 写读 先写后读

    f = open("day08",mode="w+",encoding="utf-8")

    f.write("你好啊安达市多")

    print(f.read())

     

    a+ 追加写读 先写后读

    f = open("a",mode="a+",encoding="gbk")

    print(f.tell()) # 查看的是字节

    f.seek(0)

    print(f.read(1)) # 字符

    f.write("真的废物")

    其他操作:

    查看光标: tell() 返回值,返回的值就是当前光标的位置,是以字节的大小呈现

    移动光标:

    seek(0,0) 移动光标到文件起始位置

    seek(0,1) 移动光标到文件当前位置

    seek(0,2) 移动光标到文件末尾位置

    seek(3) 按照字节调整,使用编码utf-8时最小单位是3,gbk时是2

    6.文件的另一种打开方式

    with.open("day08",mode="r",encoding="utf-8")as f,

    open("a",mode="w",encoding="gbk")as f1:

    print(f.read())

    f1.write("真饿")

    上下文管理,后面会用到

    使用with open可以同时操作多个文件,也可以帮助自动关闭文件

    7.文件的修改

    with open("原文件")as f,open("新文件")as f1:

    f.for循环的读取

    f1.for循环的写入

    with open("day8",mode="r+",encoding="utf-8")as f:

    content = f.read()

    content = content.replace("您","你")

    f.seek(0,0)

    f.write(content)

     

    with open("day8",mode="r",encoding="utf-8")as f,

    open("new_day8",mode="a",encoding="utf-8")as f1:

    for i in f:

    content = i.replace("你","我")

    f1.write(content)

     

     

    import os

    os.rename("原文件名字",备份名字") # 对原文件进行备份

    os.rename("新文件名字","原文件名字") # 把新文件改成原文件的名字

  • 相关阅读:
    Android 判断字符串是否为空
    Android 7.0以上版本 系统解决拍照的问题 exposed beyond app through ClipData.Item.getUri()
    laravel中的登录页面逻辑
    linux的典型分支:
    laravel模型表建立外键约束的使用:
    laravel中的plicy授权方法:
    laravel中的storePublicly对上传的文件设置上传途径
    GitHub下的文件放到Linux系统下
    laravel注册行为的方法和逻辑
    laravel的日志服务
  • 原文地址:https://www.cnblogs.com/dangpanfei/p/11019750.html
Copyright © 2020-2023  润新知