提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在深度学习处理数据集的时候,我们需要处理数据集的相关目录和文件,这里需要利用python的一些模块,本篇文章就是介绍这些模块。
一、glob模块
glob模块也是Python标准库中一个重要的模块,主要用来查找符合特定规则的目录和文件,并将搜索的到的结果返回到一个列表中。使用这个模块最主要的原因就是,该模块支持几个特殊的正则通配符,用起方便,这个将会在下方为大家进行详细讲解。我们主要使用glob模块的三个函数:glob.glob(),glob.iglob(),glob.escape()。
1.glob.glob()
这些函数的参数都是路径,如下图所示,但是路径可以配合操作符使用。比如下面的图片配合 *,即可获取所有的文件,glob.glob()会把获取的文件存储在一个列表里
这里也可以配合操作符[]匹配其他字符
2.glob.iglob()
glob.glob()是把文件存放在一个列表里,而iglob()则是利用一个迭代器来存储。如下图代码所示:
3.glob.escape()
glob.escape()函数用于转义字符串中的特殊字符,使其可以被正确地匹配。在使用glob模块进行文件路径匹配时,如果路径中包含特殊字符如"*“、”?“、”["等,需要使用glob.escape()函数进行转义,以免出现匹配错误的情况。例如:
import glob
path = '/path/to/dir/*' #这里就是要读取名字为*的文件夹而不是用*匹配字符
files = glob.glob(glob.escape(path))
通过代码可以看出,escape的作用
二、os
os是“operating system”的缩写,os模块提供各种 Python 程序与操作系统进行交互的接口,使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性。
1.os.getcwd()
这个函数的作用是获取当前工作路径(当前project的绝对路径)
代码如下(示例):
import os
print(os.getcwd())
1.os.listdir()
把当前project的所有文件名放在一个列表里。也可以输入参数,选着需要存入列表的文件,下面的代码和glob做一下对比。
import os
print(os.listdir())
import os
import glob
data_list = glob.glob("G:/dataset/UT_HAR/UT_HAR/data/*.csv")
print(data_list)
print(os.listdir("G:/dataset/UT_HAR/UT_HAR/data/"))
可以发现glob()方法输出的是整个的绝对路径,而listdir()存储的只是文件名。
2.常用的os.path模块
os.path模块是一个路径操作模块,与文件夹和文件的路径相关 。与深度学习相关最常用的就是,os.path.join()方法。
代码如下(示例):
import os
path1 = "/path/to/dir"
path2 = "file.txt"
joined_path = os.path.join(path1, path2)
print(joined_path)