教你用Python遍历指定目录下的所有文件以及文件的过滤

       写程序我们经常会遇到需要遍历某一个目录下的所有文件这个操作,之前也写过很多用java实现的。但是java里面只能获取当前目录下列表,然后需要循环判断哪些是目录,哪些是文件,然后再进行文件夹的循环遍历,可以说相当麻烦。然而python有现成的库,只需要2个循环就可以搞定。

 

       代码如下,我们使用os.walk()方法来获取所有文件。

  os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]]) 输出在文件夹中的文件名通过在树中游走,向上或者向下。

  关于os的更多操作可以通过这个链接查看:http://www.runoob.com/python3/python3-os-file-methods.html

import os

def all_path(dirname):

    result = []#所有的文件

    for maindir, subdir, file_name_list in os.walk(dirname):

        print("1:",maindir) #当前主目录
        print("2:",subdir) #当前主目录下的所有目录
        print("3:",file_name_list)  #当前主目录下的所有文件

        for filename in file_name_list:
            apath = os.path.join(maindir, filename)#合并成一个完整路径
            result.append(apath)

    return result

print(all_path("E:\myTest"))

 

 

       创建一个测试目录,目录结构如下

  

  程序运行结果如下:

  ['E:\\myTest\\kuang3.png', 'E:\\myTest\\txt1.txt', 'E:\\myTest\\txt2.txt', 'E:\\myTest\\YYGB1.png', 'E:\\myTest\\YYGB2.png', 'E:\\myTest\\test1\\txt11.txt', 'E:\\myTest\\test2\\txt21.txt', 'E:\\myTest\\test2\\txt22.txt']

 

       然后既然路径都出来了,大家就可以进行一些批量操作了,比如使用之前的加密程序加密一些自己的小东东。当然现在我们是获取了所有的文件,如果我们只想要某一个类型的文件,那么也很简单,写个过滤就好了。所以修改后的代码如下:

 

import os

filter=[".txt"] #设置过滤后的文件类型 当然可以设置多个类型

def all_path(dirname):

    result = []#所有的文件

    for maindir, subdir, file_name_list in os.walk(dirname):

        # print("1:",maindir) #当前主目录
        # print("2:",subdir) #当前主目录下的所有目录
        # print("3:",file_name_list)  #当前主目录下的所有文件

        for filename in file_name_list:
            apath = os.path.join(maindir, filename)#合并成一个完整路径
            ext = os.path.splitext(apath)[1]  # 获取文件后缀 [0]获取的是除了文件名以外的内容

            if ext in filter:
                result.append(apath)

    return result

print(all_path("E:\myTest"))

#运行结果
#['E:\\myTest\\txt1.txt', 'E:\\myTest\\txt2.txt', 'E:\\myTest\\test1\\txt11.txt', 'E:\\myTest\\test2\\txt21.txt', 'E:\\myTest\\test2\\txt22.txt']

 

  我们已经找到了所有的txt文件,是不是很方便那?大家也来试试吧。

 

  

 

转载于:https://www.cnblogs.com/smallfoxdog/p/8622119.html

### 回答1: 我可以提供一个简单的Python代码例子,用来遍历指定目录下的每一个图片并使用OpenCV展示:import os import cv2 # 设置图片路径 img_path = './images/' # 遍历图片路径 for file in os.listdir(img_path): # 获取文件的完整路径 img_file = os.path.join(img_path, file) # 读取图片 img = cv2.imread(img_file) # 使用OpenCV显示图片 cv2.imshow(file, img) cv2.waitKey(0) cv2.destroyAllWindows() ### 回答2: 要创建一个使用OpenCV库来遍历指定目录下的每一个图片并展示的Python文件,首先需要安装OpenCV库。可以使用pip命令来安装OpenCV,如下所示: ``` pip install opencv-python ``` 安装完成后,就可以创建一个Python文件,并导入OpenCV库: ```python import cv2 import os ``` 接下来,可以使用os模块来遍历指定目录下的所有文件,找到图片文件: ```python def traverse_images(directory): for root, dirs, files in os.walk(directory): for file in files: if file.endswith(".jpg") or file.endswith(".png"): image_path = os.path.join(root, file) display_image(image_path) def display_image(image_path): image = cv2.imread(image_path) cv2.imshow("Image", image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在上述代码中,traverse_images函数使用os.walk遍历指定目录下的所有文件,并根据文件的扩展名判断是否为图片文件。如果是图片文件,则调用display_image函数来显示图片。 display_image函数使用cv2.imread函数来读取图片,并使用cv2.imshow函数来展示图片。cv2.waitKey(0)函数会暂停程序,直到用户按下任意键后继续执行。最后,使用cv2.destroyAllWindows函数关闭所有显示的窗口。 最后,可以在主程序中调用traverse_images函数,传入指定目录路径: ```python if __name__ == '__main__': directory = "指定目录路径" traverse_images(directory) ``` 将代码保存为一个Python文件,并替换"指定目录路径"为实际的目录路径。运行文件后,程序将遍历指定目录下的每一个图片并展示出来。 ### 回答3: 要创建一个Python文件并使用OpenCV来遍历指定目录下的每一张图片并展示,可以按照以下步骤进行操作: 步骤1:导入必要的库 首先,需要导入Python的os和cv2(OpenCV)库。os库用于与操作系统交互,而cv2库用于图像处理和展示。 ```python import os import cv2 ``` 步骤2:指定目录路径 接下来,需要指定遍历目录路径。可以使用os库的`os.listdir()`函数获取指定目录下的所有文件文件夹的名称,并将目录路径保存到一个变量中。 ```python directory = '指定目录的路径' ``` 步骤3:遍历目录中的图片文件 使用`os.listdir()`函数,遍历目录中的所有文件文件夹,并检查文件的扩展名以确定是否为图片文件。通过检查文件扩展名,可以过滤掉非图片文件。 ```python for file in os.listdir(directory): if file.endswith(".jpg") or file.endswith(".png"): # 图像处理和展示的代码 pass ``` 步骤4:打开并显示每一张图片 在遍历目录中的图片文件时,可以通过使用cv2库的`cv2.imread()`函数来打开图片。将图片路径与目录路径连接,并在`cv2.imshow()`函数中显示每一张图片。 ```python for file in os.listdir(directory): if file.endswith(".jpg") or file.endswith(".png"): img_path = os.path.join(directory, file) img = cv2.imread(img_path) cv2.imshow("Image", img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 步骤5:保存并运行脚本 最后,将上述代码保存到一个名为`image_viewer.py`的Python文件中,并运行该脚本。它将遍历指定目录下的每一张图片,并在一个窗口中展示出来。每当按下任意键时,窗口将关闭,并展示下一张图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值