zoukankan      html  css  js  c++  java
  • python基础5—文件 | json序列化

    下面这些代码没有经过试验, 只是作为代码段作为日后的参考, 这些死的api姑且放在这里用的时候看一下再做总结

    import sys
    print(sys.path)
    
    # ---------------文件----------------------------
    # 第一种直接方式
    file1 = open("test.txt")
    file2 = open("output.txt", "w")  # w 表示 write (覆写) r 表示 read  a 表示 append (追写)
    while True:
        line = file1.readline()
        file2.write('"' + line[:s] + '"' + ",")
        if not line:
            break
    file1.close()
    file2.close()
    
    # read()  将文本文件所有行读到一个字符串中
    # readline() 一行一行的读
    # readlines() 将文本所有行读到一个list中,每一行是list的一个元素
    
    # 第二种  文件迭代器
    file2 = open("output.txt", "w")
    for line in open("test.txt"):
        file2.write('"' + line[:s] + '"' + ",")
    
    # 第三种  文件上下文管理器
    # 打开文件
    with open("somefile.txt", "r") as f:
        data = f.read()
    
    # loop 整个文档
    with open("somefile.txt", "w") as f:
        for line in f:
            #  处理每一行
    
    # 写入文本
    with open("somefile.txt", "w") as f:
        f.write("xxx")
        f.write("xxx")
    
    # 要把打印的line写入文件中
    with open("somefile.txt", "w") as f :
        print(line1, file=f)
        print(line2, file=f)
    
    # 二进制文件读写
    f = open("EDC.jpg", "rb")
    print(f.read())  # 输出xffxd8.... 十六进制表示的字节
    
    # 任何非标准文本文件(py2标准是ASCII, py3是unicode),用二进制读入文件,用.decode() 来解码
    f = open("DeGuangGuo.txt", "rb")
    u = f.read().decode('DeyunCode')
    
    # 文件和目录的操作
    # python调用内置的os模块来调用操作系统的接口函数
    import os
    os.name  # posix == nix   nt == windows
    os.uname()  # 查看具体信息
    
    # 环境变量 存在os.environ中  是list
    
    # 当前目录的绝对路径
    os.path.abspath('.')
    # 在某个目录下创建一个新目录,把新目录表示出来
    os.path.join('/Users/EDC', 'Pictures') # 得到是新路径的字符串
    # 创建目录
    os.mkdir('/Users/EDC/Pictures/')
    # 删除目录
    os.rmdir('/Users/EDC/Pictures')
    # 拆分字符串
    os.path.split('/Users/EDC/Pictures/AJ.avi') # 拆分为俩部分, 后一部分为最后级别的目录或者文件
    # ('/Users/EDC/Pictures/', 'AJ.avi')
    # 得到文件扩展名
    os.path.splitext('/Users/EDC/Pictures/AJ.avi')
    # ('/Users/EDC/Pictures/AJ', '.avi')
    # 文件重命名
    os.rename('xxx.xx', 'bbb')
    # 删除文件
    os.remove('xxx')
    
    # 可以使用 Shutil来帮助我们搞定文件
    # 列出当前目录下的所有目录
    [x for x in os.listdir('.') if os.path.isDir(x)]
    # 列出 .py文件
    [x for x in os.listdir('.') if os.path.isDir(x) and os.path.splitext(x)[1] == '.py']
    
    
    # 序列化 从内存存储到硬盘或者传输的过程为序列化  从硬盘到内存为反序列
    import pickle
    d = dict(name='jack', age=23, score=60)
    str = pickle.dumps(d) # 调用pickle的dumps函数进行序列化处理
    print(str)
    
    f = open("dump.txt", "wb")
    pickle.dump(d, f)    # 将内容序列化写到文件中
    f.close()
    
    
    # 反序列化
    import pickle
    f = open("dump.txt", "rb")
    d = pickle.load(f)    # 调用load做反序列化
    f.close()
    print(d)
    print('name is %s' % d['name'])
    
    # python2 和3 里面的pickle不一致,为了保证和谐
    try:
        import cPickle as pickle
    except ImportError:
        import pickle
    
    # json 序列化   使用json这个库即可 
    import json
    d1 = dict(name='jack', age = 29, score=32)
    str = json.dump(d1)  # 序列化
    
    d2 = json.loads(str) # 反序列化
  • 相关阅读:
    拓端tecdat|R语言平滑算法LOESS局部加权回归、三次样条、变化点检测拟合电视节目《白宫风云》在线收视率
    拓端tecdat|R语言结合新冠疫情COVID-19对股票价格预测:ARIMA,KNN和神经网络时间序列分析
    拓端tecdat|Stata广义矩量法GMM面板向量自回归PVAR模型选择、估计、Granger因果检验分析投资、收入和消费数据
    拓端tecdat|Python用T-SNE非线性降维技术拟合和可视化高维数据iris鸢尾花、MNIST 数据
    confirmit中常用 短代码
    DELL服务器硬件信息采集SHELL脚本
    功能、资源权限管理的设计
    maven--插件篇(assembly插件)
    呀哈哈
    virtualbox扩展硬盘容量
  • 原文地址:https://www.cnblogs.com/zeroones/p/8329499.html
Copyright © 2011-2022 走看看