python简单的保存数据所使用的三大方法

一、open() 方法

Python open() 方法用于打开一个文件,并返回文件对象。

注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

open(file, mode='r')

mode:文件打开模式,默认为 'r'(只读)。其他常见模式包括:

  • 'w':写入模式,会覆盖原有文件。
  • 'a':追加模式,会在文件末尾追加内容。
  • 'b':二进制模式。
  • 1.读取文件read()方法会读取文件中的所有内容

    with open('example.txt', 'r') as file:
        content = file.read()
        print(content)

    readline()读取文件中的一行内容,返回一个字符串

    with open('example.txt', 'r') as file:
        content = file.readline()
        print(content)
    

    readlines()可以读取多行内容,逐行读取并返回一个列表

    with open('example.txt', 'r') as file:
        content = file.readlines()
        print(content)
    

    这里使用了 with 语句,它会自动处理文件的打开和关闭,确保文件在操作完成后正确关闭。

    2.写入文件 write()写入一行内容,若文件中有内容则覆盖文件中的所有内容

    with open('example.txt', 'w') as file:
        file.write('Hello, World!')

    writelines()写入多个多行内容

    with open('example.txt', 'w') as file:
        file.writelines(["dasd\n", "adshad\n"])
    

    3.追加内容

    with open('example.txt', 'a') as file:
        file.write('\nshu ru yi hang')

    使用 'a' 模式可以在文件末尾追加内容,而不是覆盖原有内容。

    4. 读取二进制文件,使用 'b' 模式可以读取二进制文件,如图片或音频文件,可以返回一个字节流

    with open('./heads/aaa.jpg', 'rb') as file:
        data = file.read()
        print(data)

    二、JSON 和 Pickle 序列化

     序列化:将python数据结构 转换为字符串
     反序列化:将字符串 转换为python数据结构 方便解析

    1.序列化(编码) – 将 Python 对象转换成 JSON 字符串

    data = {
        'name': 'Kimi',
        'age': 30,
        'skills': ['Python', 'Data Analysis']
    }
    
    json_string = json.dumps(data)
    print(json_string)

    json.dumps()可以将python数据转化为 json字符串

    2.dump写入文件

    import json
    data = {
        'name': 'Kimi',
        'age': 30,
        'skills': ['Python', 'java']
    }
    
    with open("example.txt","w") as f:
        json.dump(data,f)

    json.dump(python数据 , 文件),dump可以直接将python数据转为json字符串,并存于文件中

    3.反序列化(解码) – 将 JSON 字符串转换回 Python 对象:

    with open("example.txt","r") as f:
        content = f.read()
        print(content,type(content))
        datas = json.loads(content)
        print(datas, type(datas))

    json.loads()将文件中存储的json字符串转为python数据类型

    4.load读取文件

    with open("example.txt","r") as f:
        datas = json.load(f)
        print(datas, type(datas))

    json.load()直接将文件中存储的json字符串转为python数据类型并存储进文件中

    在python中json和pickle都可以使用dumps、dump、loads、load,

    比较 JSON 和 Pickle

  • 可读性:JSON 是文本格式,易于阅读和编写;Pickle 是二进制格式,不便于阅读。
  • 跨语言:JSON 是跨语言的,可以被多种编程语言解析;Pickle 仅限于 Python。
  • 复杂性:Pickle 可以序列化几乎所有的 Python 对象,包括函数、类等;JSON 只能序列化基本数据类型和对象。
  • 安全性:JSON 相对安全,因为其格式简单;Pickle 可能存在安全风险,特别是加载不可信的文件。
  • 三、os模块

    1.chdir()更改当前文件路径

    import os
    
    path = "/tmp"
    
    # 查看当前工作目录
    path = os.getcwd()
    
    
    # 修改当前工作目录
    os.chdir( path )
    
    # 查看修改后的工作目录
    retval = os.getcwd()
    
    print ("目录修改成功 %s" % retval)

    2.listdir()列出当前路径下的所有文件

    import os
    
    # 打开文件
    path = "D:\python2407\python基础语法"
    dirs = os.listdir( path )
    
    # 输出所有文件和文件夹
    for file in dirs:
        print (file)

    3.exists()判断当前路径是否存在,如果路径 path 存在,返回 True;如果路径 path 不存在或损坏,返回 False。

    print(os.path.exists("f:\Program\hello.txt"))

    print(os.path.exists("D:\python2407\python基础语法"))

    4.abspath()返回一个文件夹的绝对路径和dirname()返回一个文件路径的父级路径

    print(os.path.abspath("D:\python2407\python基础语法"))
    print(os.path.dirname("D:\python2407\python基础语法"))

    5.mkdir()创建一个文件rmdir()删除一个文件

    os.mkdir("D:\python2407\ixie")

    os.rmdir("D:\python2407\ixie")

    rmdir()则可将文件删除

    作者:dhudhj

    物联沃分享整理
    物联沃-IOTWORD物联网 » python简单的保存数据所使用的三大方法

    发表回复