zoukankan      html  css  js  c++  java
  • python模块(2)

    1.OS模块

    1 print(os.getcwd())   #获取当前工作目录
    2 os.chdir('E:python练习python35学习')   #更改目录
    3 print(os.getcwd())

    E:python练习python35学习Day5
    E:python练习python35学习

    1 print(os.curdir)  #当前目录
    2 print(os.pardir)  #父级(上一级)目录
    3 print(os.sep)   #路径分隔符
    4 print(os.pathsep)  #文件路径分割符
    5 print(os.name)   #当前使用平台名称,win-->'nt',Linux-->'posix'
    6 print(os.environ)  #环境变量(以字典方式显示)

    .
    ..

    ;
    nt
    (略)

    os.makedirs(r'E:acd')   #递归创建多级目录
    os.removedirs(r'E:acd')  #从后面逐级判断目录是否为空,若为空则删除
    os.mkdir(r'E:a')  #一次只能创建一级目录
    os.rmdir(r'E:a')  #一次只能删除一级目录,若为空删除,否则不删
    os.remove(r'E:CLionCLion 2017.2.2uild.txt')  #删除文件
    1 print(os.listdir(r'E:CLionCLion 2017.2.2'))  #显示指定目录下的所有目录和文件,包括隐藏文件
    2 os.rename(r'E:python练习fib.py',r'E:python练习fibnan1.py')  #重命名
    3 print(os.stat(r'E:python练习'))   #文件或目录状态信息

    ['bin', 'help', 'jre64', 'lib', 'license', 'plugins']
    os.stat_result(st_mode=16895, st_ino=18295873486193234, st_dev=2227732002, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1516964219, st_mtime=1516964219, st_ctime=1499412376)

    1 os.system('ifconfig')  #运行shell命令
     1 print(os.path.abspath(__file__))  #绝对路径
     2 print(os.path.dirname('E:python练习python35学习Day5os_test.py')) #最后一个之前的
     3 print(os.path.basename('E:python练习python35学习Day5'))   #最后一个之后的
     4 print(os.path.split('E:/python练习/python35学习/Day5/os_test.py'))  #将文件与目录拆分开,形成元组
     5 print(os.path.exists('E:/python练习/python35学习/Day5'))    #判断文件或目录是否存在
     6 print(os.path.isabs('python练习/python35学习/Day5/os_test.py'))   #判断是否是绝对路径
     7 print(os.path.isfile('E:/python练习/python35学习/Day5/os_test.py'))   #判断是否是文件
     8 print(os.path.isdir('E:/python练习/python35学习/Day5/os_test.py'))  #判断是否是目录
     9 print(os.path.join(r'E:/python练习/python35学习/Day5/',r'Day5.txt'))   #路径连接
    10 print(os.path.getatime('E:/python练习/python35学习/Day5/os_test.py'))   #最后的存取时间access
    11 print(os.path.getmtime('E:/python练习/python35学习/Day5/os_test.py'))   #最后的修改时间modify

     2.shutil模块(主要用于文件复制)

    先创建file对象,再进行复制

    1 import shutil
    2 f1=open('本章小结')
    3 f2=open('小结2','w')
    4 shutil.copyfileobj(f1,f2)  #复制文件对象(需要先open)

    直接复制

    1 shutil.copyfile("小结2","笔记")    #复制文件(无需先open)
    2 shutil.copy("笔记","笔记2")

    复制文件状态

    1 shutil.copystat("本章小结","笔记")   #修改状态:atime,mtime

    级联复制or级联删除

    1 shutil.copytree('a','a1')  #级联复制目录
    2 shutil.rmtree('a1')  #删除多级目录
    由目录生成压缩包 make_archive(base_name,format,root_dir)
    # base_name:生成压缩包的路径、文件名,
    # format:压缩包的种类:zip,tar,gztar,batar
    # root_dir:要压缩的文件路径(默认当前目录)
    shutil.make_archive('www','zip','a')   #生成压缩包

    3.json与pickle模块(序列化中应注意的问题,dump一次,load一次(相当于文件中始终只有最新一次的‘快照’))

     json:解决了不同语言,不同平台之间的数据交换
    pickle:python自己的数据类型进行交互,支持所有python数据类型

    json序列化:
    1 info={
    2     'name':'cecelia',
    3     'age':23,
    4 }
    5 
    6 j_str=json.dumps(info)   #将数据通过特殊的形式转化为所有语言都认识的字符串
    7 print(j_str)
    1 with open('info1','w',encoding='utf-8') as f:
    2     json.dump(info,f)    #将数据通过特殊的形式转化为所有语言都认识的字符串,并写入文件
    3 f.close()
    pickle序列化:
     1 import pickle
     2 def test():
     3     print('this is for our test')
     4 info = {
     5     'name': 'cecelia',
     6     'age': 23,
     7     'func': test
     8 }
     9 p_str=pickle.dumps(info)  #pickle.dump将数据转化为只有python认识的字符串
    10 print(p_str)
    1 with open('info','wb') as f:
    2     pickle.dump(info,f)   #pickle.dump将数据转化为只有python认识的字符串,并写入文件
    3 f.close()

    json反序列化: 

    1 import json
    2 
    3 with open('info1','r') as f:
    4      data=json.load(f)
    5 f.close()
    6 
    7 print(data['name'])
    pickle反序列化: 
     1 import pickle
     2 
     3 def test():
     4     print(' testing  ')
     5 
     6 with open('info','rb') as f:
     7     data=pickle.load(f)
     8 f.close()
     9 
    10 print(data['func']())

     4.shelve模块:对pickle的进一步封装

    写入:

     1 import shelve
     2 import datetime
     3 
     4 d=shelve.open('shelve testing')
     5 
     6 info={
     7     "age":22,
     8     "tel":12332973
     9 }
    10 name=['alex','bob','cindy']
    11 
    12 d['name']=name
    13 d['info']=info
    14 d['date']=datetime.datetime.now()

    读取: 

    1 import shelve
    2 import datetime
    3 
    4 d=shelve.open('shelve testing')
    5 
    6 print(d.get('name'))
    7 print(d.get('info'))
    8 print(d.get('date'))
    
    
    
    
    
    
    
    


  • 相关阅读:
    vue中mixins的使用方法和注意点(详)
    深入理解.sync修饰符
    less语法详解
    vue中的history和hash
    在Vue组件中获取全局的点击事件
    echarts
    【SQL Server性能优化】运用SQL Server的全文检索来提高模糊匹配的效率
    【SQL Server备份恢复】维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份
    通过SQL Server的扩展事件来跟踪SQL语句在运行时,时间都消耗到哪儿了?
    如何向视图插入数据
  • 原文地址:https://www.cnblogs.com/ceceliahappycoding/p/8383982.html
Copyright © 2011-2022 走看看