三种方式(os.walk、glob、os.listdir)得到文件目录下的每个文件的文件名

#_*_coding:utf-8_*_

import os
import glob

print("=========walk()========")
#os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]):
    #top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
        #root 所指的是当前正在遍历的这个文件夹的本身的地址
        #dirs 是一个 list ,内容是该文件夹中所有的目录的名字
        #files 同样是 list , 内容是该文件夹中所有的文件
    #topdown     --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)
        #如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
    #onerror     -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。
    #followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的
                    #目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
for root,dirs,files in os.walk("./data",topdown=True):
    print(files)    #依次输出当前目录下的文件名、子目录下的文件名以及子目录下的子目录下的文件名
    #print(dirs)    #输出各个文件夹名,包括子目录下的子目录文件夹
    #print(root)    #输出各个文件夹名的路径
    # for name in files:
    #     print(os.path.join(root,name))
    # for name in dirs:
    #     print(os.path.join(root,name))

print("==========glob()==========")
img_path=glob.glob("./data/image/*.jpg")
for each in img_path:
    print(each)

print("==========listdir()=========")
#只返回当前路径下的所有文件和文件夹
dirs = os.listdir("./data")
print(dirs)

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Python的glob模块可以同时选择jpg和png文件,示例代码如下: ```python import glob import os path = '/path/to/directory' file_pattern = os.path.join(path, '*.jpg') + os.path.join(path, '*.png') files = glob.glob(file_pattern) ``` 这里的`os.path.join`用来拼接路径,`glob.glob`用来匹配符合条件的文件名。`*.jpg`和`*.png`是通配符,表示匹配所有以`.jpg`和`.png`结尾的文件。这样就可以同时选择jpg和png文件了。 ### 回答2: os.path.join函数是Python中用于连接路径的函数。如果要同时选择扩展名为jpg和png的文件,可以使用字符串拼接的方式。 例如,我们有一个存储图片的文件夹路径为“/path/to/images”,我们想要选择扩展名为jpg和png的图片文件。可以这样使用os.path.join函数: ```python import os image_folder = "/path/to/images" file_extensions = ["jpg", "png"] # 遍历文件夹中的文件 for filename in os.listdir(image_folder): # 获取文件的扩展名 file_extension = os.path.splitext(filename)[1][1:].lower() # 如果文件的扩展名是jpg或者png,则输出文件的绝对路径 if file_extension in file_extensions : file_path = os.path.join(image_folder, filename) print(file_path) ``` 上面的代码中,我们定义了一个文件夹路径和一个包含想要选择的文件扩展名的列表。然后使用os.listdir函数遍历文件夹中的所有文件名。对于每个文件,我们使用os.path.splitext函数获取文件的扩展名,并转换为小写字母形式。然后检查扩展名是否在指定的扩展名列表中,如果是,则使用os.path.join函数拼接文件的绝对路径并输出。 注意,上面的代码只是打印符合条件的文件的绝对路径,你可以根据自己的需求修改代码来实现其他操作。 ### 回答3: 在使用`os.path.join`函数进行路径拼接时,无法直接选择文件类型,但我们可以使用其他方法来实现同时选择`jpg`和`png`文件的目的。 一种简单的方法是使用`os.listdir`函数来获取指定目录下的所有文件,然后使用列表推导式来筛选出符合条件的文件路径。示例如下: ```python import os dir_path = '指定目录的路径' file_paths = [os.path.join(dir_path, file) for file in os.listdir(dir_path) if file.endswith('.jpg') or file.endswith('.png')] ``` 在以上代码中,`os.listdir(dir_path)`会返回指定目录下的所有文件名,并使用列表推导式进行筛选。`file.endswith('.jpg')`和`file.endswith('.png')`用于判断文件名是否以`.jpg`或`.png`结尾,如果是,则将其使用`os.path.join(dir_path, file)`拼接为完整的文件路径,并添加到`file_paths`列表中。最终,`file_paths`中将包含所有符合条件的`jpg`和`png`文件的路径。 需要注意的是,以上代码中的`dir_path`需要替换为实际的目录路径。另外,如果还希望递归地搜索子目录中的文件,可以使用`os.walk`函数来实现。 总结:虽然`os.path.join`函数本身无法直接选择文件类型,但我们可以使用`os.listdir`函数和列表推导式来筛选出指定类型的文件,并使用`os.path.join`函数进行路径拼接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值