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])) # 将可迭代的列表归并