Fork me on GitHub

os 和 shutil 模块

# ### 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")

  

posted @ 2019-05-24 22:26  MR_黄Python之路  阅读(337)  评论(0编辑  收藏  举报