赣州那里有做网站的公司,贵阳网站建设在哪里,培训网站开发哪个好,广州番禺伤人案深度学习中不可避免的数据预处理~1. glob.glob()方法 2. pathlib中的Path方法3. os.walk()方法1. glob.glob()方法 语法glob.glob(pathname)#xff08;多指定文件类型#xff0c;查找jpg,png,txt,json等#xff09;缺点#xff1a;查找文件较慢2. 路径操作库pathlib中的Pa…深度学习中不可避免的数据预处理~1. glob.glob()方法 2. pathlib中的Path方法 3. os.walk()方法1. glob.glob()方法 语法glob.glob(pathname)多指定文件类型查找jpg,png,txt,json等缺点查找文件较慢2. 路径操作库pathlib中的Path方法*大型项目常用递归列出某类型文件from pathlib import Pathtop_level_py_files Path(.).glob(*.py)
all_py_files Path(.).rglob(*.py) # 递归print(list(top_level_py_files))
print(list(all_py_files))
# [WindowsPath(test.py)]
# [WindowsPath(test.py), WindowsPath(src/config/submodule.py), WindowsPath(src/config/__init__.py)]
打开多个文件并读取内容globfrom glob import globcontents []
for fname in glob(./**/*.py, recursiveTrue):with open(fname, r) as f:contents.append(f.read())print(contents)
pathlibfrom pathlib import Pathcontents []
for fname in Path(.).rglob(*.py):with open(fname, r) as f:contents.append(f.read())print(contents)
操作符使用/取代os.path.join创建子目录from pathlib import Pathbase_dir Path(src)
child_dir base_dir / config
file_path child_dir / __init__.pyprint(file_path)
# src\config\__init__.py
列出匹配的文件或目录 Path.glob()from pathlib import Pathdir_path Path(src/config/)
file_paths dir_path.glob(*.py)print(list(file_paths))
# [WindowsPath(src/config/submodule.py), WindowsPath(src/config/__init__.py)]
递归列出匹配的文件或目录 Path.rglob()from pathlib import Pathdir_path Path(.)
file_paths dir_path.rglob(*.py)print(list(file_paths))
# [WindowsPath(test.py), WindowsPath(src/config/submodule.py), WindowsPath(src/config/__init__.py)]
列出路径下的文件和目录 Path.iterdir()from pathlib import Pathbase_path Path(.)
contents [content for content in base_path.iterdir()]print(contents)
# [WindowsPath(.idea), WindowsPath(file.txt), WindowsPath(src), WindowsPath(test.py)]
3.osPath().iterdir()Path()返回一个WindowsPath对象调用该对象的iterdir()方法就可以返回一个迭代器此迭代器包含该对象指定文件夹内的所有文件或文件夹的路径。不考虑嵌套文件夹中的文件。Path().glob()Path()返回一个WindowsPath对象调用该对象的glob()方法就可以调用符合条件的所有文件或文件夹的路径如果没有用**通配符就不会涉及子层文件夹。Path().rglob()Path()返回一个WindowsPath对象调用该对象的rglob()方法就可以调用所有当前对象指向文件夹以及所有子层文件夹下的符合条件的路径。创建文件夹或多层嵌套文件夹Path().mkdir(parentsFalse)Path()返回一个WindowsPath对象调用该对象的mkdir()方法就可以创建该对象指定的文件夹路径。注意该对象指定的文件夹路径一定要不存在才能调用这个方法所以在调用前一般先调用exist()方法确认是否存在只有返回结果为False才能继续。parents参数默认是False而如果设置为True那么表示允许创建多层嵌套文件夹。os.mkdir(path)传入一个path路径创建单层(单个)文件夹如果文件夹已经存在就会报错。因此创建文件夹之前需要使用os.path.exists(path)函数判断文件夹是否存在。os.makedirs(path)传入一个path路径创建一个多层嵌套文件夹如果文件夹存在就会报错。4. os.walk()方法语法os.walk(top, topdown True, onerror None, followlinks False)返回得到一个三元tupple(dirpath, dirnames, filenames),第一个为起始路径第二个为起始路径下的文件夹第三个是起始路径下的文件。dirpath 是一个string代表目录的路径dirnames 是一个list包含了dirpath下所有子目录的名字。filenames 是一个list包含了非目录文件的名字。这些名字不包含路径信息如果需要得到全路径需要使用os.path.join(dirpath, name).自下而上的深度优先遍历os.listdir(path)传入任意一个path路径返回的是该路径下所有文件和目录组成的列表os.walk(path)传入任意一个path路径深层次遍历指定路径下的所有子文件夹返回的是一个由路径、文件夹列表、文件列表组成的元组。区别WindowsPath对象和路径字符串的区别拼接路径和上一级路径WindowsPath对象要拼接和扩展路径直接用/deep_path而路径字符串需要用deep_path或调用os.path.join()函数。WindowsPath对象的上一级路径需要调用parent属性而路径字符串则是用/../来实现。参考文献【1】python-os模块、glob模块、pathlib、shutil模块之间的区别与辨析文件及文件夹操作python与操作系统文件系统的交互。_键盘即钢琴的博客-CSDN博客【2】Python路径操作库pathlib比osglobshutil更好用_XerCis的博客-CSDN博客_python 路径操作库