zoukankan      html  css  js  c++  java
  • python笔记三

    # 数据读写不一定是文件,也可以在内存中读写   
    # StringIO就是在内存中读写str 
    
    from io import StringIO
    f = StringIO() # 要把str写入StringIO,我们需要先创建一个StringIO
    f.write('leyi')
    print(f.getvalue()) # getvalue()方法用于获得写入后的str
    
    
    from io import StringIO
    f = StringIO('hello world!')
    s = f.readlines()
    print(s) # ['hello world!']
    
    
    # BytesIO
    # StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO  
    # BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes
    from io import BytesIO
    f = BytesIO()
    f.write('我是谁'.encode('utf-8'))
    print(f.getvalue()) # b'xe6x88x91xe6x98xafxe8xb0x81'
    print(f.getbuffer()) # <memory at 0x1089aaa10>
    
    
    import os
    print(os.name) # posix
    print(os.environ) # 查看环境变量
    print(os.environ.get('PYCHARM_DISPLAY_PORT'))
    
    print(os.path.abspath('.')) # 查看当前目录的绝对路径
    # os.mkdir(os.path.join(os.path.abspath('.'), 'test')) # 在当前目录创建一个目录
    
    print(os.path.join('./111/222/333', '444.txt')) # 拼接路径 ./111/222/333/444.txt
    print(os.path.split('./111/222/333.txt')) # 拆分路径 ('./111/222', '333.txt')
    print(os.path.splitext('./xxx/xxx/xx.txt')) # 根据扩展名进行拆分 ('./xxx/xxx/xx', '.txt')
    
    os.rename('xxx.txt', 'yyy.txt') # 重命名文件 
    os.remove('xxx.txt') # 删除文件   
    
    # 查找当前目录所有的txt文件    
    import os
    for x in os.listdir('.') :
        if (os.path.isfile(x) and os.path.splitext(x)[1] == '.txt'):
            print(x)
    
    # 查找当前目录所有的目录    
    for x in os.listdir('.') :
        if (os.path.isdir(x)):
            print(x)
    
    
    # 把变量从内存中变成可存储或传输的过程称之为序列化   
    import pickle    
    d = {'aa' : 111, 'bb': 2222}    
    print(pickle.dumps(d))      
    # b'x80x03}qx00(Xx02x00x00x00aaqx01KoXx02x00x00x00bbqx02Mxaex08u.'
    
    # pickle.dumps()方法把任意对象序列化成一个bytes
    # pickle.dump()直接把对象序列化后写入一个file-like Object
    
    import pickle
    d = {'aa' : 111, 'bb': 2222}
    print(pickle.dumps(d))
    bb = pickle.dumps(d)
    print(pickle.loads(bb)) 
    with open('./b.txt', 'wb') as f:      
        pickle.dump(d, f)    
    with open('./b.txt', 'rb') as f2:    
        print(pickle.load(f2))     
    
    JSON和Python内置的数据类型对比:
    
    
    import json
    d = {'aa': 111, 'bb': 222}
    d2 = dict(aa = 111, bb = 222)
    print(type(json.dumps(d)))
    print(type(json.dumps(d2)))
    print(type(json.loads(json.dumps(d))))
    print(type(json.loads(json.dumps(d2))))
    

      

  • 相关阅读:
    scrapy-redis使用以及剖析
    完全理解 Python 迭代对象、迭代器、生成器
    Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    HTTP状态码
    Py西游攻关之RabbitMQ、Memcache、Redis
    Django contenttypes 应用
    cookie和session 以及Django中应用
    RESTful规范
    rest_framework框架的认识
    vue 总结
  • 原文地址:https://www.cnblogs.com/leyi/p/11543800.html
Copyright © 2011-2022 走看看