import os //os模块基本实现了linux系统中所有的命令
os.system('终端命令'):在终端执行命令
os.getcwd():获取当前的工作路径
os.chdir():修改工作路径
os.chmod():修改权限
os.chown():修改属主属组
os.mkdir():创建单个目录,当目录存在时报异常,相当linux中的mkdir
os.makedirs():递归创建目录,当目录存在时报异常,相当于linux中的mkdir -p
exist_ok=True:当目录存在时不报异常
mode=0o777 :创建目录时同时设置权限,0o表示八进制,0x表示十六进制
os.rmdir():删除单个空目录,此目录下不能有任何文件
os.removedirs():递归删除空目录,当目录中有文件时删除会报错
os.remove():删除单个文件
os.listdir():列出当前目录下的所有文件及目录,以列表的形式返回;不会进行递归
os.scandir():返回一个生成器,可以通过迭代的方式显示
例:aa=os.scandir()
aa.is_dir():判断返回是否为目录
aa.name:获取返回文件或目录的名字
aa.path:获取文件或目录的路径
os.walk():以迭代的方式返回当前目录或者指定目录下的所有文件和目录;返回3个参数
for root,dirs,files in os.walk('/tmp/liuwei'):
print(root)
print(files)
print(files)
root:读取到的目录
dirs:表示当前目录下有哪些目录
files:表示当前目录下有哪些文件
路径相关的操作:
os.path.basename:返回文件名
os.path.dirname:返回路径
os.path.join:把所有的路径进行拼接,可以接收多个参数
os.path.split:把dirname和basename分开,返回一个二元组
os.path.splitext:分离文件的扩展名,返回一个二元组;例test.txt,返回的为(‘test’,’.txt’) os.path.abspath:给出相对路径时,返回绝对路径
os.path.isdir:是否是目录
os.path.isfile:是否是文件
import shutil
shutil.move('src','dest'):对目录进行重命名或者移动,移动到当前目录下是重命名,到其它为移动
shutil.copyfile:仅复制数据
shutil.copymode:仅复制权限
shutil.copystat:复制stat info(atime,ctime,mtime)
shutil.copy():复制数据与权限
shutil.copy2():复制数据与stat info(包括权限,atime,ctime,mtime,flags等)
shutil.copytree():递归复制目录,相当于linux中的copy -r
当复制的文件为链接文件时,会找到源文件进行复制,复制过去不是符号连接
symlinks=True:当有链接文件时,复制过去也为链接文件