700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 只获取指定目录下所有指定后缀的文件名称 不要把子目录名字也加入列表 python中用gl

只获取指定目录下所有指定后缀的文件名称 不要把子目录名字也加入列表 python中用gl

时间:2021-05-17 20:43:08

相关推荐

只获取指定目录下所有指定后缀的文件名称 不要把子目录名字也加入列表 python中用gl

只获取指定目录下所有指定后缀的文件名称,不要把子目录名字也加入列表,python中用glob.glob()函数实现。

#仅仅把XLSX后缀的文件加入列表import globxlsx_files_list = glob.glob(xlsx_files_path + r"\*.xlsx") #这是一个带【绝对路径】的文件名列表!rint("第42行,xlsx_files_list中文件数是:", len(xlsx_files_list))

-

glob模块是最简单的模块之一。

用它可以查找符合特定规则的文件路径名。

查找文件只用到三个匹配符:””, “?”, “[]”。

””匹配0个或多个字符;

”?”匹配单个字符;

”[]”匹配指定范围内的字符,如:[0-9]匹配数字。

”*.png”匹配后缀为png的所有文件;

-

# 只列png文件,不要把目录名字拉入列表,用glob.glob()函数实现import glob#获取指定目录下的所有图片print (glob.glob(r"/home/*/*.png"),"\n")#加上r让字符串不转义#获取上级目录的所有.py文件print (glob.glob(r'../*.py')) #相对路径

特别注意:

一、得到的list列表,是一个带有路径和文件名的合集,不仅仅是文件名,还带有路径!

二、不包括子目录里的文件名。

三、windows系统下,文件名不区分大小写,所以应写作:

extensions = ['jpg', 'jpeg']

否则,文件会统计两遍。

-

-

另一种写法:

import globif __name__ == '__main__':file_out_dir = "D:\\code\\Python\\Data_out\\"id_file=file_out_dir+'*.csv'len_file=len(glob.glob(id_file))print(len_file)for file in glob.glob(id_file):print(file)

寻找包含特定字符的文件,可用如下代码用于找到包含特定字符“meinv”的文件

import globif __name__ == '__main__':file_out_dir = "D:\\code\\Python\\Data_out\\"id_file=file_out_dir+'*meinv'len_file=len(glob.glob(id_file))print(len_file)for file in glob.glob(id_file):print(file)

-

-

-

此外,注意:

若用os.listdir(files_path) 存在以下问题:

一、 把子目录名也加入列表了,目录名称被运算容易死机。文件夹中所有的文件和目录名称提取出来按顺序放进files_list列表中

二、若想限定后缀名,要用非常复杂的代码;

三、得到的是一个不带路径的文件名和目录名称的合集,是list列表。

# 把子目录名也加入列表了,子目录名称被运算容易死机。文件夹中所有的文件和目录名称提取出来按顺序放进files_list列表中#若想限定后缀名,要用非常复杂的代码;#得到的是一个不带路径的文件名、目录名称,合集的list。files_list = os.listdir(files_path)

筛选的代码如下:

folder = r"D:\aatest"files = os.listdir(folder)print(files)def file_filter(f):if f[-4:] in ['.jpg', '.png', '.bmp']:return Trueelse:return Falsefiles = list(filter(file_filter, files))print(files)

只获取指定目录下所有指定后缀的文件名称 不要把子目录名字也加入列表 python中用glob.glob()函数实现

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。