python使用os和shutil模块进行文件创建,删除,移动,复制,重命名

python使用os和shutil模块进行文件创建,删除,移动,复制,重命名

文章目录:


可以说在python对于文件和目录的操作是经常性工作,那么os和shutil这两个模块就是文件操作的左右手!!!

pathlib是一个比os.path更好用的库包,参考


常用方法属性如下:

os.sep    可以取代操作系统特定的路径分隔符。windows下为 '\\'
os.name    字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是 'posix'
os.getcwd()    函数得到当前工作目录,即当前Python脚本工作的目录路径
os.getenv()    获取一个环境变量,如果没有返回none
os.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)    改变工作目录到dirname          
os.path.getsize(name)    获得文件大小,如果name是目录返回0L
os.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.environ
environ({'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 2019.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 2019.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:\\VS2013_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"))
# 结果
True
True

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"))
# 结果
False
True

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/test1
C:/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\test
C:\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

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:

NAME
    os - OS routines for NT or Posix depending on what system we're on.

DESCRIPTION
    This 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 being
    portable between different platforms.  Of course, they must then
    only use functions that are defined by all platforms (e.g., unlink
    and opendir), and leave all pathname manipulation to os.path
    (e.g., split and join).

CLASSES
    builtins.Exception(builtins.BaseException)
        builtins.OSError
    builtins.object
        nt.DirEntry
    builtins.tuple(builtins.object)
        nt.times_result
        nt.uname_result
        stat_result
        statvfs_result
        terminal_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、https://blog.csdn.net/u011961856/article/details/79122057
2、https://blog.csdn.net/silentwolfyh/article/details/74931123
3、https://blog.csdn.net/seanblog/article/details/78885423
4、https://blog.csdn.net/CloudXli/article/details/79421599
5、http://www.codexiu.cn/python/blog/12183/

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

猜你喜欢

转载自blog.csdn.net/weixin_41010198/article/details/103307561