zoukankan      html  css  js  c++  java
  • Python学习 9day__高级语法

    os模块
      和操作系统相关的模块,主要是文件操作
      和系统相关的操作主要包含在三个模块里
       os:操作系统目录相关
       os.path:系统路径相关操作
       shutil:高级文件操作,目录树的操作,文件复制,删除,移动
      路径:
       绝对路径:总是从根目录上开始
       相对路径:基本以当前环境为开始的一个相对的地方

    import os
    #getcwd() 获取当前的工作目录
    a = os.getcwd()
    print(a)
    
    # chdir() 改变当前的工作目录
    
    os.chdir('要改变到的目录')
    print(os.getcwd())

      listdir() 获取一个目录中所有子目录和文件的名称列表
        格式:os.listdir('目录') 不填参数则默认当前目录
    a = os.listdir()
    print(a)

      makedirs() 递归创建文件夹
       格式:os.makedirs("递归路径") 参数只填建立文件夹名,则默认在当前目录下新建文件夹
    r = os.makedirs("111")
    print(r)


      system() 运行系统shell命令

    a = os.system("dir")
    print(a)
    
    
    # getenv() 获取指定的环境变量值
    # putenv() 添加环境变量
    
    a = os.getenv("PATH")
    print(a)

    exit() 退出当前程序


    os模块 值部分

      os.curdir:当前目录
      os.pardir:父亲目录
      os.sep:当前系统的路径分隔符
      os.linesep:当前系统的换行符号
      os.name:当前系统名称

    print(os.curdir)
    print(os.pardir)
    print(os.sep)
    print(os.linesep)
    print(os.name)


    os.path模块 与路径相关的模块

      abspath():将路径转换为绝对路径
      abselute:绝对
      格式:os.path.sbspath('.')
      '.'点代表当前目录
      '..'两个点代表父目录

    import os.path
    
    ab = os.path.abspath(".")
    print(ab)
    
    # basename()获取路径中的文件名部分
    #格式:os.path.basename(路径)
    
    # join():将多个路径拼成一个路径
    # 格式:os.path.join(路径1,路径2...)
    
    a = 'C:\windows'
    b = 'system'
    print(os.path.join(a, b))
    
    # split():将路径切割文件夹部分和当前文件部分
    a = os.path.split("路径")
    
    # isdir() 检测是否是目录  返回布尔值
    rst = os.path.isdir("/home")
    print(rst)
    # exists():检测文件或者目录是否存在   返回布尔值
    
    print(os.path.exists('/home'))


    shutil 模块

      copy() 复制文件
       格式:shutil.copy(来源路径,目标路径)
       copy2() 复制文件,保留原数据,其余与copy一样

      copyfile() 将一个文件中的内容复制到另一个文件中
      格式:shutil.copyfile(原路径,目标路径)

       move() 移动文件或文件夹 注意权限问题
       格式:shutil.move(原路径,目标路径)
      
    归档和压缩

      归档:把多个文件或文件夹合并到一个文件当中
      压缩:用算法把多个文件或者文件夹无损或者有损合并到一个文件当中

    make_archive() 归档操作
    格式:shutil.make_archive(归档后的目录和文件名,后缀,需要归档的文件)

    unpack_archive() 解包操作
    格式:shutil.unpack_archive(归档文件地址,解包之后的地址)

    Python语言的高级特性
      函数式编程

        基于lambda演算的一种编程方式
        程序中只有函数
        函数可以作为参数,同样可以作为返回值
        Python函数式编程只是借鉴函数式编程的一些特点


      lambda表达式

        函数:最大程度的复用代码
        lambda表达式:
         一个表达式,函数体相对简单
         不是一个代码块,仅仅式一个表达式
        lambad表达式用法
         以lambda开头
         紧跟一定的参数(有参数的情况下)
         参数后面用冒号和表达式主体隔开
         只是一个表达式,没有返回值

    # 单个参数
    s = lambda x: 100 * x
    print(s(20))
    
    # 多个参数
    s = lambda x, y, z: x+y+z*10
    print(s(1, 2, 3))


      高阶函数

        把函数作为参数使用的函数,叫做高阶参数

    def A():
        print("AAA")
    b = A                # 把函数A当作参数传递给了b函数
    b()
    
    # 高阶函数的参数传递例子
    def AAA(n):
        return n*100
    def BBB(n, m):
        return m(n) * 3
    print(BBB(9, AAA))

      系统高阶函数---map

        原意是映射,即把集合或者列表的元素,每一个元素都按一定顺序操作,生成一个新的列表或者集合

    l1 = [i for i in range (10)]
    print(l1)
    def A(n):
        return n*10
    l2 = map(A, l1)
    print(l2)
    for i in l2:                 # 用for循环打印可迭代数据
        print(i)

    reduce

      归并 缩减
      把一个可迭代对象最后归并成为一个结果


    from functools import reduce
    
    def A(x, y):
        return x + y
    
    print(reduce(A,[1, 2, 3, 4, 5, 6]))    # 将可迭代的列表归并
  • 相关阅读:
    基础MYSQl技巧集锦
    C MySQL float类型数据 用 printf()打印
    1Tomcat+Axis+Eclipse实例讲解 2自己做的一个可以用的webservice,只是开始 (WebService好文)
    信号量 进程 (m个生产者,n个消费者,容量为r的缓冲区)
    信号量和同步互斥
    C语言 wait()信号量部分 signal()信号量部分代码
    Tomcat+Axis+Eclipse实例讲解
    MySQL 集合 补集
    SELECT DocID, SUM(a.Score + B.Score) AS TOTAL Itemset_ONE a LEFT Join Itemset_Two b ON a.DocID=b.DocID 太慢
    Yii AR Model 查询
  • 原文地址:https://www.cnblogs.com/Burtit/p/9379576.html
Copyright © 2011-2022 走看看