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

只获取指定目录下所有指定后缀的文件名称,不要把子目录名字也加入列表,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)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部