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]))    # 将可迭代的列表归并
原文地址:https://www.cnblogs.com/Burtit/p/9379576.html