python

您所在的位置:网站首页 os模块建立文件夹的函数是什么 python

python

2024-07-08 05:16| 来源: 网络整理| 查看: 265

Reference

pathlib库,文件与文件夹处理的 "四大天王" 之一,贼好用!

Python模块 | 这份os模块知识详解,太牛逼!

Python模块 | shutil模块,为什么说它是os模块的兄弟模块?

Python模块 | glob模块详解

一、概述

1.1 os模块和pathlib模块能实现的功能非常详尽,一般来说推荐使用pathlib模块,因为语法规则更合理、更可读。

1.2 glob模块主要是用来匹配文件、文件夹的,学习它主要是要知道各个通配符的含义。

1.3 shutil模块主要用来复制、移动文件,以及创建压缩包、查看压缩包信息。

二、pathlib模块和os模块的对比 2.1 获取当前目录或当前文件路径 Path.cwd():前面这个Path表示pathlib模块下的子模块,和Path()函数返回的WindowsPath对象不一样。os.getcwd()

前者返回一个Windowspath对象(指向文件夹路径),而后者单纯地返回一个路径(字符串)。

当然,Windowspath对象不仅可以是文件夹路径,也可以是文件路径。

如果你想要用Path.cwd()得到跟os.getcwd() 一样的路径字符串,可以用str()函数转换。

注意home目录是当前工作目录的上一级目录,所以用Path.home()返回的结果和Path.cwd().parent返回的结果一样。

__file__属性中包括了当前文件路径,用Path()函数将其转换为WindowsPath对象后,在cmd中输出的是相对路径,如果想要输出绝对路径,就在后面加一个resolve()方法。比如Path(__file__).resolve()。

2.2 修改当前工作目录 os.chdir(new_path):修改当前工作目录为path指定路径。 2.2 WindowsPath对象和路径字符串的区别(拼接路径和上一级路径)

(1)WindowsPath对象要拼接和扩展路径,直接用/'deep_path',而路径字符串需要用+'deep_path'或调用os.path.join()函数。

 (2)WindowsPath对象的上一级路径,需要调用parent属性;而路径字符串则是用/../来实现。

2.3 获取指定路径下的所有文件(夹)路径 os.listdir(path):传入任意一个path路径,返回的是该路径下所有文件和目录组成的列表os.walk(path):传入任意一个path路径,深层次遍历指定路径下的所有子文件夹,返回的是一个由路径、文件夹列表、文件列表组成的元组。 Path().iterdir():Path()返回一个WindowsPath对象,调用该对象的iterdir()方法,就可以返回一个迭代器,此迭代器包含该对象指定文件夹内的所有文件或文件夹的路径。不考虑嵌套文件夹中的文件。Path().glob():Path()返回一个WindowsPath对象,调用该对象的glob()方法,就可以调用符合条件的所有文件或文件夹的路径,如果没有用**通配符,就不会涉及子层文件夹。Path().rglob():Path()返回一个WindowsPath对象,调用该对象的rglob()方法,就可以调用所有当前对象指向文件夹以及所有子层文件夹下的符合条件的路径。

关联知识:在glob模块中,也有glob属性方法,也是找到所有符合条件的路径。glob.glob()是返回一个列表,而glob.iglob()是返回一个迭代器。

2.4 获取路径中的特定部分(文件名、后缀、) Path().name:Path()返回一个WindowsPath对象,调用该对象的name属性,就可以返回该对象指定文件路径的文件名(包括后缀)。更广泛地,可以说这个方法返回的是最后一个斜杠后面的包括扩展格式符的字符串。Path().stem:Path()返回一个WindowsPath对象,调用该对象的stem属性,就可以返回该对象指定文件路径的文件名(不包括后缀)。更广泛地,可以说这个方法返回的是最后一个斜杠后面的不包括扩展格式符的字符串。Path().suffix:Path()返回一个WindowsPath对象,调用该对象的suffix属性,就可以返回该对象指定文件路径的文件的后缀(仅包括后缀)。更广泛地,可以说这个方法返回的是最后一个斜杠后面的仅包括扩展格式符字符串。跟文件路径后缀有关的一个python内置属性是endswitch,如果后缀是指定后缀则返回True。有些小伙伴可能会想要用pathlib模块返回类似os模块的dirname,其实可以调用Path().parent,这样就是返回文件所属目录。如果想要获取路径的盘符,可以用Path().acchor,如果对象指定的路径在C盘,返回结果就是C:\。 os.path.dirname(path):path指定的是一个文件路径,那么返回该文件路径的上一级文件夹路径。比如path是C:\Users\ABC\a.jpg,那么返回C:\Users\ABC。调用 os.path.dirname(path) 将返回一个字符串,它包含 path 参数中最后一个斜杠之前的所有内容。os.path.basename(path):path指定的是一个文件路径,那么返回该文件路径的文件名称。比如path是C:\Users\ABC\a.jpg,那么返回a.jpg。调用 os.path.basename(path) 将返回一个字符串,它包含 path 参数中最后一个斜杠之后的所有内容。os.path.split(path):path指定的是一个文件路径,那么返回一个元组,第一个元素是os.path.dirname(path)的返回结果,第二个元素是os.path.basename(path)的返回结果。更通用和普遍地说,调用os.path.split()将返回一个包含两个元素的元组,第一个元素对应path的最后一个斜杠的前面所有内容,第二个元素对应最后一个斜杠后面所有内容。os.path.splitext(path):path指定的是一个文件路径,那么返回一个元组,第一个元素是第一个元素对应path的最后一个点号的前面所有内容,第二个元素对应最后一个点号后面所有内容。比如"http://v2016/images/logo.png",那么返回第一个元素是【http://v2016/images/logo】,返回的第二个元素是【.png】。

2.5 判断指定(文件或文件夹)路径是否存在 Path().exist():Path()返回一个WindowsPath对象,调用该对象的exist()方法,如果存在就返回True。

os.path.exists(path)

传入一个path路径,判断指定路径下的目录是否存在。存在返回True,否则返回False。

2.6 判断某路径指定的是文件还是文件夹 Path().is_dir():判断Path()返回的WindowsPath对象是否为一个文件夹。Path().is_file():判断Path()返回的WindowsPath对象是否为一个文件。 os.path.isdir(path)os.path.isfile(path)

2.7 获取路径所指向文件的概要信息 Path().stat

Path()返回一个WindowsPath对象,然后调用该对象的stat的属性,即可返回这个对象的信息。

如果这个对象指向一个文件路径,就是返回这个文件的信息(文件大小、创建时间、编辑时间等)。

 os.path.getsize()

括号里面应该是一个文件路径。

2.8 创建文件夹或多层嵌套文件夹 Path().mkdir(parents=False):Path()返回一个WindowsPath对象,调用该对象的mkdir()方法,就可以创建该对象指定的文件夹路径。注意,该对象指定的文件夹路径一定要不存在才能调用这个方法,所以在调用前一般先调用exist()方法确认是否存在,只有返回结果为False才能继续。parents参数默认是False,而如果设置为True,那么表示允许创建多层嵌套文件夹。 os.mkdir(path):传入一个path路径,创建单层(单个)文件夹;如果文件夹已经存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在。os.makedirs(path):传入一个path路径,创建一个多层嵌套文件夹;如果文件夹存在,就会报错。因此...。

2.9 重命名文件或文件夹 Path().rename():假设Path()返回的是对象指定的路径是C:\Users\ABC\a.jpg,那么rename()方法参数为'new_a.jpg'时,就会把该对象改成C:\Users\ABC\new_a.jpg。

2.10 移动文件或文件夹 Path().replace():replace方法中的参数应该是一个新路径。例如Path("demo.txt").replace('archive/demo.txt')。

2.10 删除文件或文件夹

pathlib.Path.unlink()在Python 3.4及更高版本中用来删除单个文件pathlib模块。

os.rmdir(path):删除指定文件夹,注意只能删除空文件夹。

os.remove():删除指定文件,注意不能删除目录。和os.unlink()作用一致,但是前者是Windows系统用的指令,后者是unix系统所属。

 shutil.rmtree()删除目录及其下面所有内容。目录下可以不为空。

2.11 其他操作 os.sep:返回当前操作系统的路径分隔符,比如Windows系统的路径分隔符是'\\'

三、glob模块的讲解

四、shutil模块的讲解 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3