Python_面向对象_shutil 模块

时间:2022-12-15 22:05:55

#-- os 与 shutil模块 都具备对文件的操作
"""
区别:
  os模块具有 新建/删除/
  shutil模块 复制/移动/
"""
#os.mknod 创建文件
#os.remove 删除文件
#os.mkdir 创建目录(文件夹)
#os.rmdir 删除目录(文件夹)
#os.rename 对文件,目录重命名
==========================================================================================

#--shutil 模块
#copyfileobj(fsrc, fdst[, length=16*1024]) 复制文件 (length的单位是字符(表达一次读多少字符))
#copyfile(src,dst) #单纯的仅复制文件内容 , 底层调用了 copyfileobj
#copymode(src,dst) #单纯的仅复制文件权限 , 不更改文件内容 (虚拟机共享目录都是默认777)
#copystat(src,dst) #复制所有状态信息,包括权限,组,用户,时间等
#copy(src,dst) #复制文件权限和内容
#copy2(src,dst) #复制文件权限和内容,还包括权限,组,用户,时间等
#copytree(src,dst) #拷贝文件夹里所有内容(递归拷贝)
#rmtree(path) #删除当前文件夹及其中所有内容(递归删除)
#move() #移动文件或者文件夹


""" *了解内容
  #shutil 具有打包功能,但是功能性一般,不常用
  #make_archive() 打包操作
  #unpack_archive() 解包操作
"""

==========================================================================================

import os
os.chdir("/home/wangwen/ceshi0801")


#os.mknod 创建文件
res = os.mknod("3.txt")

 

#os.remove 删除文件
res = os.remove("3.txt")

 

#os.mkdir 创建目录(文件夹)
res = os.mkdir("lianxi001")

 

#os.rmdir 删除目录(文件夹)
res = os.rmdir("lianxi001")

 

#os.rename 对文件目录重命名
#(1) 对目录重命名
res = os.rename("cesih002","cesuo003")
#(2) 对文件重命名
res = os.rename("a001","a002")


import shutil
#copyfileobj(fsrc, fdst[,length=16*1024]) 复制文件 (length的单位是字符(表达一次读多少字符))
fp1 = open("2.txt","r",encoding="utf-8")
fp2 = open("3.txt","w",encoding="utf-8")
res = shutil.copyfileobj(fp1,fp2)

 

#copyfile(src,dst) #单纯的仅复制文件内容 , 底层调用了 copyfileobj
res = shutil.copyfile("2.txt","4.txt")
print(res)

 

#copymode(src,dst) #单纯的仅复制文件权限 , 不更改文件内容 (虚拟机共享目录都是默认777)
res = shutil.copymode("2.txt","5.txt")
print(res)

 

#copystat(src,dst) #复制所有状态信息,包括权限,组,用户,时间等
res = shutil.copystat("2.txt","6.txt")

 

#copy(src,dst) #复制文件权限和内容
res = shutil.copy("2.txt","7.txt")

 

#copy2(src,dst) #复制文件权限和内容,还包括权限,组,用户,时间等
res = shutil.copy2("2.txt","8.txt")

os.chdir("/mnt/hgfs/vm_gongxiang/day15")


#copytree(src,dst) #拷贝文件夹里所有内容(递归拷贝)
res = shutil.copytree("ceshi004","ceshi005")

 

#rmtree(path) #删除当前文件夹及其中所有内容(递归删除)
res = shutil.rmtree("ceshi005")

 

#move() #移动文件或者文件夹
shutil.move("ceshi005","../ceshi006_you")