• collections-shelve-shutil


    collections

    from collections import namedtuple       命名元祖

    namedtuple('内容',['字符串'])

    t = namedtuple('time_tuple',['a','b','c'])
    t1 = t(1,2,3)         # time_tuple[a=1,b=2,c=3]
    print(t1.a)        
    print(t1.b)       
    print(t1.c)  
    
    
    结果:
    1
    2
    3      

    from collections import Counter      计数

    s = 'ssda'
    c = Counter(s)
    print(c)          
    
    结果:
    Counter({'s':2,'d':1,'a':1})    
    
    #计数每个字母出现的次数,自动排序

     from collections import defaultdict     默认字典 

    dic = defaultdict(list)
    print(dic)         
    
    
    结果:#
    []

    from collections import deque      双向队列

    队列:FIFO(先进先出)

    栈:LIFO(后进先出)

    队列
    import queue
    q = queue.Queue()             #队列 容器
    q.put('内容')                  #添加内容
    print(q.get())                #获取内容
    
    #队列不能查看,不能直接print(q)
    栈
    d = deque('内容')
    
    d.append('1')
    d.append('2')
    d.append('3')
    d.appendleft('4')
    d.appendleft('5')
    print(d)        
    
    
    结果:
    deque(['5','4','1','2','3'])

     shelve 

     序列化   基于pickle实现   操作和字典的操作一样

    import shelve
    f = shelve.open('文件')       #创建文件
    f['name'] = 'alex'           #字典的增加 键必须是字符串 值没有要求
    print(f['name'])             #字典的查看
    print(f.get['name'])         #字典的查看
    
    for i in f():
    print(i)                         #查看键
    for i in f.values():
    print(i)                          #查看值
    for i in f.items():
    print(i)                          #查看键值对

     要注意一种回写替换不了的情况   在文件里更改内容,但在打印的时候没有更改,需要这样处理:

    f = open('文件',writeback = True)
    f['name'] = 'sam'          #回写替换之前name的值
    f.close()
    
    
    #如果出现了会写不成功的情况,在open写(writeback = True)

    shutil   

     高级文件操作,可以进行剪切 赋值 删除 压缩

    import shutil
    shutil.copyfile('要拷贝的原文件路径','要拷贝到哪的路径和新文件的名字')
    shutil.copyfileobj(open('文件路径'))
    shutil.copytree('要拷贝的递归文件','要拷贝到哪的路径和递归文件名')     #递归拷贝
    shutil.rmtree('要删除的文件路径')                                 #递归删除  有文件就删
    shutil.move('要移动的文件路径',移动到哪的文件夹)                     #递归的移动文件  相当于剪切
    
    
    压缩包
    shutil.make_archive('要压缩的文件名','zip',logger = logging.error(''))
  • 相关阅读:
    组件映射
    联合主键关联
    一对一单向双向主键关联
    7函数
    forEach与map
    3运算符与表达式
    作用域声明提升
    php程序设计 1,2章节
    angularJs(3)过滤器
    angularJs(1)指令篇
  • 原文地址:https://www.cnblogs.com/sandy-123/p/10300326.html
Copyright © 2020-2023  润新知