python使用os和shutil模块进行文件创建,删除,移动,复制,重命名
文章目录:1 os模块的使用1.1 os不带path1.1.1 os.sep 属性:返回系统路径分隔符1.1.2 os.name 属性:返回使用平台1.1.3 os.linesep 属性:返回字符串行终止符1.1.4 os.environ 属性:返回系统所有的环境变量1.1.5 os.curdir 属性 :返回当前目录"."1.1.6 os.system(command):执行shell命令1.1.7 os.listdir(path):返回一个当前路径下文件和文件夹名称的列表1.1.8 os.getcwd():获取当前的文件的所在的路径1.1.9 os.mkdir(path) 创建一个目录1.1.10 os.makedirs(name):递归的创建文件夹1.1.11 os.remove(path):指定删除某个文件1.2.12 os.rmdir(dirname):指定删除某个文件夹1.1.13 os.chdir(dirname) : 改变工作目录到dirname1.1.14os.getenv() 获取一个环境变量,如果没有返回none1.1.15 os.putenv(key, value) 设置一个环境变量值1.1.16 os.walk()1.1.17 其他一些不带path1.2 os带path (os.path)1.2.1 os.path.exists(path):检验给出的路径是否存在1.2.2 os.path.isfile(filename):检验给出的路径是否是一个文件1.2.3 os.path.isdir(dirname):检验给出的路径是否是一个目录1.2.4 os.path.isabs():判断是否是绝对路径1.2.5 os.path.join():把文件和路径合成一个名, 用来拼接全名1.2.6 os.path.basename():获取文件名1.2.7 os.path.dirname():获取文件所在的路径名1.2.8 os.path.abspath():获得相对路径的绝对路径1.2.9 os.path.split():返回一个路径的目录名和文件名1.2.10 os.path.splitext():分离扩展名1.2.11 os.path.getsize(filename):返回文件的大小1.2.12 os.path.expanduser(path):替换路径中的~为home目录,并返回替换后路径2 shutil模块使用2.1 shutil模块文件基本使用2.1.1 shutil.move(src, dst) 移动文件 或 目录.(也可以重命名)2.1.2 shutil.2.2 shutil模块的拷贝2.2.1 shutil.copyfile(oldfile, newfile)2.2.2 shutil.copyfile(oldfile, newfile)2.2.3 shutil.copytree(olddir, newdir): 递归的去拷贝文件夹2.2.3 shutil.rmtree(src):2.3.4 其他拷贝相关3 附录:3.1 查看python中模块的所有方法3.1.1 使用dir(modulename)进行查看3.2 查看python种模块、方法和属性的使用文档
可以说在python对于文件和目录的操作是经常性工作,那么os和shutil这两个模块就是文件操作的左右手!!!
pathlib是一个比os.path更好用的库包,参考
常用方法属性如下:
os.sep 可以取代操作系统特定的路径分隔符。windows下为 '\\'os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix'os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径os.getenv() 获取一个环境变量,如果没有返回noneos.putenv(key, value) 设置一个环境变量值os.listdir(path) 返回指定目录下的所有文件和目录名os.remove(path) 函数用来删除一个文件os.system(command) 函数用来运行shell命令os.linesep 字符串给出当前平台使用的行终止符。例如,Windows使用 '\r\n',Linux使用 '\n' 而Mac使用 '\r'os.path.split(path) 函数返回一个路径的目录名和文件名os.path.isfile() 和os.path.isdir()函数分别检验给出的路径是一个文件还是目录os.path.exists() 函数用来检验给出的路径是否真地存在os.curdir 返回当前目录 ('.')os.mkdir(path) 创建一个目录os.makedirs(path) 递归的创建目录os.chdir(dirname) 改变工作目录到dirnameos.path.getsize(name) 获得文件大小,如果name是目录返回0Los.path.abspath(name) 获得绝对路径os.path.normpath(path) 规范path字符串形式os.path.splitext() 分离文件名与扩展名os.path.join(path,name) 连接目录与文件名或目录os.path.basename(path) 返回文件名os.path.dirname(path) 返回文件路径os.walk(top,topdown=True,οnerrοr=None) 遍历迭代目录os.rename(src, dst) 重命名file或者directory src到dst 如果dst是一个存在的directory, 将抛出OSError. 在Unix, 如果dst在存且是一个file, 如果用户有权限的话,它将被安静的替换. 操作将会失败在某些Unix 中如果src和dst在不同的文件系统中. 如果成功, 这命名操作将会是一个原子操作 (这是POSIX 需要). 在 Windows上, 如果dst已经存在, 将抛出OSError,即使它是一个文件. 在unix,Windows中有效。os.renames(old, new) 递归重命名文件夹或者文件。像rename()# shutil 模块shutil.copyfile( src, dst) 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉shutil.move( src, dst) 移动文件或重命名shutil.copymode( src, dst) 只是会复制其权限其他的东西是不会被复制的shutil.copystat( src, dst) 复制权限、最后访问时间、最后修改时间shutil.copy( src, dst) 复制一个文件到一个文件或一个目录shutil.copy2( src, dst) 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西shutil.copy2( src, dst) 如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作shutil.copytree( olddir, newdir, True/Flase)把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接shutil.rmtree( src ) 递归删除一个目录以及目录内的所有内容
1 os模块的使用
OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作
这里我们把os分成带path和不带path两部分,这样比较容易记忆
1.1 os不带path
1.1.1 os.sep 属性:返回系统路径分隔符
os.sep:
是一个属性,并没有参数,是可以自动获取系统路径的分隔符(separation
),并以字符串的形式返回没有参数,是属性返回系统的路径分隔符返回类型字符串
Windows系统
通过是“\”
,Linux类系统
如Ubuntu的分隔符是“/”
,而苹果Mac OS
系统中是“:”
。
使用os.sep代替系统分隔符可以实现跨平台
,不用担心不能移植
Linux下一个路径, ‘/usr/share/python’ 那么上面的 os.sep 就是 ‘/’
Windows下一个路径, ‘\usr\share\python’ 那么上面的 os.sep 就是 ‘’。
举例:
>>> os.sep'\\'>>> print(os.sep+"user"+os.sep+"test")\user\test
1.1.2 os.name 属性:返回使用平台
os.name :
输出字符串指示正在使用的平台。如果是window 则用’nt’表示,对于Linux/Unix用户,它是’posix’。没有参数,是属性返回系统使用平台返回类型是字符串
举例:
>>> os.name'nt'>>> print(type(os.name))<class
1.1.3 os.linesep 属性:返回字符串行终止符
os.linesep:
字符串给出当前平台使用的行终止符。例如,Windows使用 ‘\r\n’,Linux使用 ‘\n’ 而Mac使用 ‘\r’没有参数,是属性返回的是平台的行终止符返回类型是字符串
举例:
>>> os.linesep'\r\n'>>>
1.1.4 os.environ 属性:返回系统所有的环境变量
os.environ :
返回操作系统所有的环境变量没有参数,是属性返回的是系统种的所有变量返回类型是<class ‘os._Environ’>
举例:
>>> os.environenviron({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\93176\\AppData\\Roaming', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'SHLIANGPC', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'CONFIGSETROOT': 'C:\\WINDOWS\\ConfigSetRoot', 'CUDA_PATH': 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.0', 'CUDA_PATH_V10_0': 'C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.0', 'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'FREI0R_PATH': 'E:\\SOFTWA~1\\APOWER~1\\APOWER~1\\frei0r;E:\\software_install\\Apowershow_install\\ApowerShow\\frei0r', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\93176', 'INTEL_DEV_REDIST': 'C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\', 'LOCALAPPDATA': 'C:\\Users\\93176\\AppData\\Local', 'LOGONSERVER': '\\\\SHLIANGPC', 'MIC_LD_LIBRARY_PATH': 'C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\compiler\\lib\\intel64_win_mic', 'MOZ_PLUGIN_PATH': 'E:\\software_install\\FoxitReader_install\\Foxit Reader\\plugins\\', 'NUMBER_OF_PROCESSORS': '12', 'NVCUDASAMPLES10_0_ROOT': 'C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.0', 'NVCUDASAMPLES_ROOT': 'C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v10.0', 'NVTOOLSEXT_PATH': 'C:\\Program Files\\NVIDIA Corporation\\NvToolsExt\\', 'ONEDRIVE': 'C:\\Users\\93176\\OneDrive', 'ONEDRIVECONSUMER': 'C:\\Users\\93176\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;C:\\ProgramData\\Anaconda3\\Library\\usr\\bin;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\ProgramData\\Anaconda3\\Scripts;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.0\\bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.0\\libnvvp;C:\\Program Files (x86)\\Common Files\\Intel\\Shared Libraries\\redist\\intel64_win\\compiler;C:\\windows\\system32;E:\\software_install\\ffmpeg\\bin;C:\\Program Files\\NVIDIA Corporation\\NVSMI;E:\\software_install\\frei0r-plugins-1.6.1;E:\\software_install\\PotPlayer_install\\PotPlayer\\PotPlayerMini64.exe;E:\\software_install\\MinGW_insatll\\bin;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\NVIDIA Corporation\\NVIDIA NvDLISR;E:\\software_install\\Anaconda_install\\Lib;E:\\software_install\\Git_install\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\Graphviz2.38\\bin;C:\\Users\\93176\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\93176\\AppData\\Local\\GitHubDesktop\\bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v10.0\\bin;C:\\Users\\93176\\AppData\\Local\\BypassRuntm;C:\\Program Files\\JetBrains\\PyCharm .2.2\\bin;;E:\\software_install\\Opencv410_install\\opencv\\build\\x64\\vc15\\bin;C:\\Program Files\\NVIDIA Corporation\\NVSMI;C:\\Users\\93176\\AppData\\Local\\Microsoft\\WindowsApps;E:\\software_install\\cmake-3.15.3-win64-x64\\bin;C:\\Program Files (x86)\\Graphviz2.38\\bin;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 158 Stepping 10, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '9e0a', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PROMPT': '$P$G', 'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules', 'PUBLIC': 'C:\\Users\\Public', 'PYCHARM': 'C:\\Program Files\\JetBrains\\PyCharm .2.2\\bin;', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\WINDOWS', 'TEMP': 'C:\\Users\\93176\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\93176\\AppData\\Local\\Temp', 'USERDOMAIN': 'SHLIANGPC', 'USERDOMAIN_ROAMINGPROFILE': 'SHLIANGPC', 'USERNAME': 'shl', 'USERPROFILE': 'C:\\Users\\93176', 'VS120COMNTOOLS': 'D:\\VS_install\\Common7\\Tools\\', 'WINDIR': 'C:\\WINDOWS'})>>> print(type(os.environ))<class 'os._Environ'>>>>
1.1.5 os.curdir 属性 :返回当前目录"."
os.curdir:
返回当前目录 (’.’)没有参数,是属性返回当前目录返回类型是字符串
举例:
>>> os.curdir'.'>>>
1.1.6 os.system(command):执行shell命令
os.system(command)
:执行shell命令是方法(函数)一个参数: command :linux或windows命令行下的命令,传入参数是字符串类型 返回结果是整形int
举例:
>>> print(type(os.system("chdir")))C:\Users\93176<class 'int'>>>> print(type(os.system("time")))当前时间: 16:11:55.85输入新时间:<class 'int'>>>>
1.1.7 os.listdir(path):返回一个当前路径下文件和文件夹名称的列表
os.listdir(path):
返回一个当前路径下文件和文件夹名称的列表是方法(函数)一个参数: path:传入的是一个
文件夹
的路径,传入参数字符串类型 返回类型是当前路径下文件的的列表
举例:
>>> import os>>> os.listdir("./Public")['AccountPictures', 'Desktop', 'desktop.ini', 'Documents', 'Downloads', 'Foxit Software', 'Libraries', 'Music', 'Pictures', 'QiYi', 'Thunder Network', 'Videos', 'Win']>>>
1.1.8 os.getcwd():获取当前的文件的所在的路径
os.getcwd():
获取当前的文件的所在的路径是方法(函数)没有参数 返回的是当前的文件所在的路径 返回结果是字符串类型
举例:
>>> os.getcwd()'C:\\Users'>>>
1.1.9 os.mkdir(path) 创建一个目录
`os.mkdir(path):· 创建一个目录
是方法(函数)一般用到的只有第一个参数path:要创建的文件夹名字,传入参数是字符串类型没有返回值
举例:
os.mkdir(path)
1.1.10 os.makedirs(name):递归的创建文件夹
os.makedirs(name):
递归的创建文件夹os.makedirs(name, mode=511, exist_ok=False)是方法(函数)一般使用的参数有两个: name: 要递归的创建的文件夹,传入字符串类型,例如“./test1/test2/test3” 创建3个文件夹exist_ok:如果设置为False,当要创建的文件夹已经存在就会报错,如果设置为True,当要创建的文件夹已经存在此时不创建,但也不会报错提醒。 没有返回值
举例:
os.makedirs("./test1/test2/test3", mode=511, exist_ok=True)
1.1.11 os.remove(path):指定删除某个文件
os.remove(path):
指定删除某个文件是方法(函数)一个参数: path:要删除的文件 没有返回值
不可以用于删除目录
举例:
os.remove("os/hello/aa.txt")
1.2.12 os.rmdir(dirname):指定删除某个文件夹
os.rmdir(dirname):
指定删除某个文件是方法(函数)一个参数: dirname_path:要删除的文件夹 没有返回值
不可以用于删除目录
举例:
os.rmdir("./os/hello")
删除多个目录:os.removedirs()
1.1.13 os.chdir(dirname) : 改变工作目录到dirname
os.chdir(dirname):
改变工作目录到dirname是方法(函数)一个参数: dirname:传入的是要改变到指定的文件夹路径 没有返回结果
举例:
>>> os.getcwd()'C:\\Users\\93176\\Desktop'>>> os.chdir("./test1/test2")>>> os.getcwd()'C:\\Users\\93176\\Desktop\\test1\\test2'>>>
1.1.14os.getenv() 获取一个环境变量,如果没有返回none
os.getenv():
os.getenv(key, default=None)
os.system(command)
:执行shell命令是方法(函数)一个参数: key 环境变量名,返回的是环境变量对应的值 返回结果是字符串类型,如果变量不存在就返回None
举例:
>>> print(os.getenv("HOMEPATH"))\Users\93176>>> print(os.getenv("shliang"))None>>>
1.1.15 os.putenv(key, value) 设置一个环境变量值
os.putenv:
设置一个环境变量值
举例:
os.putenv("HOME2", "/users/93176/desktop")
1.1.16 os.walk()
os.walk(top, topdown=True, onerror=None, followlinks=False):
1.1.17 其他一些不带path
os.rename(old, new)
:重命名os.stat(file)
:获取文件属性os.chmod(file)
:修改文件权限与时间戳os.get_terminal_size()
:获取当前终端大小os.kill()
:os.kill(pid, signal, /) 杀死进程,例如:os.kill(10884,signal.SIGKILL)
1.2 os带path (os.path)
1.2.1 os.path.exists(path):检验给出的路径是否存在
返回布尔值,如果路径存在则返回True,如果路径不存在则放回Fale。这个路径可以是文件,也可以是文件夹
举例:
print(os.path.exists("./os/test"))print(os.path.exists("./os/aa.txt"))# 结果TrueTrue
1.2.2 os.path.isfile(filename):检验给出的路径是否是一个文件
存在返回布尔值 True,否则返回Fase。举例:
print(os.path.isfile("./os/aa.txt"))# 结果True
1.2.3 os.path.isdir(dirname):检验给出的路径是否是一个目录
存在返回布尔值True,否则返回Fase。举例:
print(os.path.isdir("./os/test"))# 结果True
1.2.4 os.path.isabs():判断是否是绝对路径
是绝对路径返回True,否则返回False举例:
print(os.path.isabs("./os/aa.txt"))print(os.path.isabs(r"C:\\Users\\93176\\Desktop/test1.txt"))# 结果FalseTrue
1.2.5 os.path.join():把文件和路径合成一个名, 用来拼接全名
用于路径的拼接举例:
print(os.path.join("C:/Users/93176/", "test1"))print(os.path.join("C:/Users/93176/", "test1", "test2", "test3"))# 结果C:/Users/93176/test1C:/Users/93176/test1\test2\test3
1.2.6 os.path.basename():获取文件名
返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。只有路径最后是文件名才会返回文件名,否则就什么也不返回举例:
print(os.path.basename("./os/aa.txt"))print(os.path.basename("./os/"))# 结果aa.txt
1.2.7 os.path.dirname():获取文件所在的路径名
获取文件所在的路径名,如果 传入的路径是文件夹,则返回的路径和传入一样如果传入的是文件,则返回的是文件所在的文件夹路径举例:
print(os.path.dirname("./os/test/"))print(os.path.dirname("./os/aa.txt"))# 结果./os/test./os
1.2.8 os.path.abspath():获得相对路径的绝对路径
返回的是传入相对路径的绝对路径返回值的类型是字符串举例:
print(os.path.abspath("./os/test/"))print(os.path.abspath("./os/aa.txt"))# 结果C:\Users\93176\Desktop\os\testC:\Users\93176\Desktop\os\aa.txt
1.2.9 os.path.split():返回一个路径的目录名和文件名
返回结果是一个元组类型举例:
print(os.path.split("./os/aa.txt"))# 结果('./os', 'aa.txt')
1.2.10 os.path.splitext():分离扩展名
返回结果是一个元组类型举例:
print(os.path.splitext("./os/aa.txt"))# 结果('./os/aa', '.txt')
1.2.11 os.path.getsize(filename):返回文件的大小
返回文件的大小,单位是字节aa.txt 中的内容为 :hello
一个字符占一个字节
举例:
print(os.path.getsize("./os/aa.txt"))# 结果5
1.2.12 os.path.expanduser(path):替换路径中的~为home目录,并返回替换后路径
os.path.expanduser(path)
函数的主要功能就是把路径中含有~
替换为/home/user_name
,熟悉linux应该知道是什么含义,下面是实例:
1、linux
2、windows
2 shutil模块使用
2.1 shutil模块文件基本使用
2.1.1 shutil.move(src, dst) 移动文件 或 目录.(也可以重命名)
把src,移动到dst的位置返回文件被移动后的路径不仅可以移动文件,同样文件夹也可以被移动dst中一定不可以有 src同名的文件或文件夹,否则会报错,dst已经存在src移动到dst的文件和目录页可以重命名src被从原来的路径移走就已经不存在啦举例:
shutil.move("./shutil/test1/aa.txt", "./shutil/test2/")shutil.move("./shutil/test1/test11", "./shutil/test2/")shutil.move("./shutil/test1/aa.txt", "./shutil/test2/cc.txt") # 重命名# 结果'C:\\\\Users\\\\93176\\\\Desktop/test2.txt''./shutil/test2/test11''./shutil/test2/cc.txt'
2.1.2 shutil.
2.2 shutil模块的拷贝
2.2.1 shutil.copyfile(oldfile, newfile)
shutil.copy(src, dst, *, follow_symlinks=True)oldfile只能是文件夹,newfile可以是文件,也可以是目标目录和shutil.copyfile()类似举例:
shutil.copy("./shutil/test1/aa.txt", "./shutil/test2/")shutil.copy("./shutil/test1/aa.txt", "./shutil/test2/") # 这个就类似shutil.move()# 结果'./shutil/test2/cc.txt''./shutil/test2/aa.txt'
2.2.2 shutil.copyfile(oldfile, newfile)
shutil.copyfile(src, dst, *, follow_symlinks=True)src和dst都必须是文件src文件中的内容会覆盖dst文件中的内容,但是dst的文件名不变因为只是拷贝,所有src的文件不变返回的是拷贝后文件dst文件的路径举例:
shutil.copyfile("./shutil/test1/aa.txt", "./shutil/test2/bb.txt")# 结果'./shutil/test2/bb.txt'
2.2.3 shutil.copytree(olddir, newdir): 递归的去拷贝文件夹
shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=<function copy2 at 0x0000022C44A3BE18>, ignore_dangling_symlinks=False)olddir和newdir都只能是目录,且newdir必须不存在2.2.3 shutil.rmtree(src):
shutil.rmtree( src ) 递归删除一个目录以及目录内的所有内容举例:
# 结果
2.3.4 其他拷贝相关
shutil.copymode( src, dst)
: 只是会复制其权限其他的东西是不会被复制的
shutil.copystat( src, dst)
: 复制权限、最后访问时间、最后修改时间
shutil.copy2( src, dst)
: 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西
shutil.copy2( src, dst)
: 如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作
shutil.copytree( olddir, newdir, True/Flase)
:
把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接
3 附录:
3.1 查看python中模块的所有方法
导入模块之后,可以在命令行中查看模块的所有方法
3.1.1 使用dir(modulename)进行查看
dir()其实有很多种使用姿势,主要如下,让我们来一一进行解锁吧!
查看模块的方法和属性名查看模块的子类的方法和属性查看数据类型的方法和属性
1、查看模块的方法和属性
dir(modulename):列出模块中定义的所有
函数(方法)
和变量
的名称
。
如下:
>>> import os>>> dir(os)['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'PathLike', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_execvpe', '_exists', '_exit', '_fspath', '_get_exports_list', '_putenv', '_unsetenv', '_wrap_close', 'abc', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'cpu_count', 'curdir', 'defpath', 'device_encoding', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fspath', 'fstat', 'fsync', 'ftruncate', 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv', 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'replace', 'rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'st', 'startfile', 'stat', 'stat_float_times', 'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ', 'supports_dir_fd', 'supports_effective_ids', 'supports_fd', 'supports_follow_symlinks', 'symlink', 'sys', 'system', 'terminal_size', 'times', 'times_result', 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write']>>>
2、查看模块的子类的方法和属性
如果你想要查看os.path下有哪些方法和属性可以使用,同样可以用dir
进行查看
dir(os.path)
>>> dir(os.path)['__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_get_bothseps', '_getfinalpathname', '_getfullpathname', '_getvolumepathname', 'abspath', 'altsep', 'basename', 'commonpath', 'commonprefix', 'curdir', 'defpath', 'devnull', 'dirname', 'exists', 'expanduser', 'expandvars', 'extsep', 'genericpath', 'getatime', 'getctime', 'getmtime', 'getsize', 'isabs', 'isdir', 'isfile', 'islink', 'ismount', 'join', 'lexists', 'normcase', 'normpath', 'os', 'pardir', 'pathsep', 'realpath', 'relpath', 'samefile', 'sameopenfile', 'samestat', 'sep', 'split', 'splitdrive', 'splitext', 'splitunc', 'stat', 'supports_unicode_filenames', 'sys']>>>
3、查看数据类型的方法和属性
比如有些字符串的属性和方法你记不清楚了,你就可以通过如下的方法进行查看
dir("Hello")
>>> dir("Hello world")['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']>>>
同理你也可以使用dir([]) dir({}) 等数据类型有哪些方法和属性
3.2 查看python种模块、方法和属性的使用文档
上面使用dir() 主要是查看有哪些方法属性,如果想要知道某个方法的具体介绍和使用文档应该怎么版呢,别急,下面我们来一起解锁吧!
查看模块的使用文档查看模块的某个方法或属性的介绍与使用
使用方法: help(modulename)
1、查看模块的使用文档
help(os)
>>> help(os)Help on module os:NAMEos - OS routines for NT or Posix depending on what system we're on.DESCRIPTIONThis exports:- all functions from posix or nt, e.g. unlink, stat, etc.- os.path is either posixpath or ntpath- os.name is either 'posix' or 'nt'- os.curdir is a string representing the current directory (always '.')- os.pardir is a string representing the parent directory (always '..')- os.sep is the (or a most common) pathname separator ('/' or '\\')- os.extsep is the extension separator (always '.')- os.altsep is the alternate pathname separator (None or '/')- os.pathsep is the component separator used in $PATH etc- os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')- os.defpath is the default search path for executables- os.devnull is the file path of the null device ('/dev/null', etc.)Programs that import and use 'os' stand a better chance of beingportable between different platforms. Of course, they must thenonly use functions that are defined by all platforms (e.g., unlinkand opendir), and leave all pathname manipulation to os.path(e.g., split and join).CLASSESbuiltins.Exception(builtins.BaseException)builtins.OSErrorbuiltins.objectnt.DirEntrybuiltins.tuple(builtins.object)nt.times_resultnt.uname_resultstat_resultstatvfs_resultterminal_size-- More --
文档内动过多,如果要退出查看,按快捷键 Ctrl + C
2、 查看模块的某个方法或属性的介绍与使用
dir(os.path.join)
>>> help(os.path.join)Help on function join in module ntpath:join(path, *paths)# Join two (or more) paths.>>>
注意:
dir() 和 help() 传入的模块、方法、属性,也可以是字符串的形式,结果一样,例如:help("os.path.join")
参考:
1、/u011961856/article/details/79122057
2、/silentwolfyh/article/details/74931123
3、/seanblog/article/details/78885423
4、/CloudXli/article/details/79421599
5、/python/blog/12183/
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠