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