# ### os 和 shutil 模块
'''
文件操作领域:
os => 新建和删除
shutil => 复制和剪切
'''
import os
# 默认更改工作路径
os.chdir("/home/wangwen/mywork")
#os.mknod 创建文件
# os.mknod("ceshi1014.txt")
#os.remove 删除文件
# os.remove("ceshi1014.txt")
#os.mkdir 创建目录(文件夹)
# os.mkdir("ceshi1001")
#os.rmdir 删除目录(文件夹)
# os.rmdir('ceshi1001')
#os.rename 对文件,目录重命名
# os.rename("ceshi1001","ceshi1002")
#os.makedirs 递归创建文件夹
# os.makedirs("a/b/c/d")
#os.removedirs 递归删除文件夹(空文件夹)
# os.removedirs("./a/b/c/d")
# -- shutil模块 复制/移动/
# (1)仅仅复制文件内容的
#copyfileobj(fsrc, fdst[, length=16*1024]) 复制文件 (length的单位是字符(表达一次读多少字符))
import shutil
fp1 = open("./3.txt","r",encoding="utf-8")
fp2 = open("./4.txt","w",encoding="utf-8")
shutil.copyfileobj(fp1,fp2)
#copyfile(src,dst) #单纯的仅复制文件内容 , 底层调用了 copyfileobj
shutil.copyfile("3.txt","5.txt") # copyfile 如果没有这个文件,自动创建
# (2)仅仅复制权限的
#copymode(src,dst) #单纯的仅复制文件权限 , 不包括内容 (虚拟机共享目录都是默认777)
shutil.copymode("3.txt","6.txt") # copymode 复制权限等操作的时,该文件必须存在
#copystat(src,dst) #复制所有状态信息,包括权限,组,用户,修改时间等,不包括内容
shutil.copystat("3.txt","7.txt")
# (3)既复制文件内容 还 复制文件权限的 *****
#copy(src,dst) #复制文件权限和内容
shutil.copy("3.txt","8.txt")
#copy2(src,dst) #复制文件权限和内容,还包括权限,组,用户,时间等
shutil.copy2("3.txt","9.txt")
# (4)递归拷贝或删除
#copytree(src,dst) #拷贝文件夹里所有内容(递归拷贝)
# shutil.copytree("/home/wangwen/mywork","/home/wangwen/mywork2")
#rmtree(path) #删除当前文件夹及其中所有内容(递归删除)
# shutil.rmtree("/home/wangwen/mywork2")
#move(path1,paht2) #移动文件或者文件夹
# shutil.move("./ceshi1002","../ceshi10003")