利用glob()函数获取Python程序中指定文件类型的文件
在Python中,可以使用glob()函数来获取指定文件类型的文件。glob()函数是glob模块中的一个函数,需要在使用前导入该模块。
glob()函数接受一个字符串参数,参数可以是一个文件路径或者一个含有特殊匹配符的字符串。它返回一个包含所有匹配的文件路径的列表。
下面是一个使用glob()函数获取指定文件类型文件的示例:
import glob
# 示例1:获取指定文件夹下的所有txt文件
folder_path = "/path/to/folder"
txt_files = glob.glob(folder_path + "/*.txt")
print(txt_files)
# 示例2:获取指定文件夹及子文件夹下的所有py文件
folder_path = "/path/to/folder"
py_files = glob.glob(folder_path + "/**/*.py", recursive=True)
print(py_files)
# 示例3:获取当前目录下的所有csv和xlsx文件
csv_and_xlsx_files = glob.glob("*.csv") + glob.glob("*.xlsx")
print(csv_and_xlsx_files)
在示例1中,通过将文件夹路径与/*.txt字符串拼接,即可获取该文件夹下所有以.txt结尾的文件路径。需要注意的是,glob()函数返回的文件路径是相对路径,如果需要获取绝对路径,可使用os.path.abspath()函数将相对路径转换为绝对路径。
在示例2中,glob()函数使用了双星号匹配符**来匹配子文件夹。通过将文件夹路径与/**/*.py字符串拼接,即可获取该文件夹及其子文件夹下所有以.py结尾的文件路径。需要注意的是,recursive=True参数是必须的,用于指示glob()函数递归地搜索文件夹下的子文件夹。
在示例3中,glob()函数可以同时匹配多个文件类型。使用+符号将两个glob()函数的返回结果列表拼接在一起,即可获取所有匹配的文件路径。
需要注意的是,glob()函数中可以使用的其他特殊匹配符还包括:
- *:匹配任意数量的字符(不包括目录分隔符)
- ?:匹配任意单个字符
- [seq]:匹配seq中的任意字符
- [!seq]:匹配除seq中的任意字符以外的字符
- [^seq]:匹配除seq中的任意字符以外的字符(与[!seq]相同)
总结:
glob()函数提供了一种方便快捷的方式来获取指定文件类型的文件路径。可以根据文件路径或特殊匹配符字符串来获取不同的文件路径。需要注意的是,glob()函数返回的文件路径是相对路径,可以使用os.path.abspath()函数将其转换为绝对路径。
