Python 获取文件夹下的文件名

os 模块下有两个函数:

  1. os.walk()
  2. os.listdir()

1、os.walk()

模块os中的walk()函数可以遍历文件夹下所有的文件。

os.walk(top, topdown=Ture, onerror=None, followlinks=False)  

该函数可以得到一个三元元组 tupple(dirpath, dirnames, filenames).

参数含义:

  • dirpath:string,代表目录的路径;
  • dirnames:list,包含了当前dirpath路径下所有的子目录名字(不包含目录路径);
  • filenames:list,包含了当前dirpath路径下所有的非目录子文件的名字(不包含目录路径)。

注意,dirnames和filenames均不包含路径信息,如需完整路径,可使用os.path.join(dirpath, dirnames)

下面给出代码;

#  !/usr/bin/env  python
#  -*- coding:utf-8 -*-
# @Time   :  2019.
# @Author :  绿色羽毛
# @Email  :  lvseyumao@foxmail.com
# @Blog   :  https://blog.csdn.net/ViatorSun
# @Note   :  


import os  
  
def file_name(file_dir):   
    for root, dirs, files in os.walk(file_dir):  
        print(root) #当前目录路径  
        print(dirs) #当前路径下所有子目录  
        print(files) #当前路径下所有非目录子文件  

当需要特定类型的文件时,代码如下:

#  !/usr/bin/env  python
#  -*- coding:utf-8 -*-
# @Time   :  2019.
# @Author :  绿色羽毛
# @Email  :  lvseyumao@foxmail.com
# @Blog   :  https://blog.csdn.net/ViatorSun
# @Note   :  
  
  
import os  
  
def file_name(file_dir):   
    FileList=[]   
    for root, dirs, files in os.walk(file_dir):  
        for file in files:  
            if os.path.splitext(file)[1] == '.jpg':  
                FileList.append(os.path.join(root, file))  
    return FileList  

其中os.path.splitext()函数将路径拆分为文件名+扩展名,例如os.path.splitext(“E:\IDCard\love.jpg”)将得到 “E:\IDCard\love”+".jpg"。

2、os.listdir()

os.listdir()函数得到的是指定路径下的文件名,不包括子目录中的文件,所有需要使用递归的方法得到全部文件名。

直接给出代码,函数将返回类型为‘.jpg’个文件名:

#  !/usr/bin/env  python
#  -*- coding:utf-8 -*-
# @Time   :  2019.
# @Author :  绿色羽毛
# @Email  :  lvseyumao@foxmail.com
# @Blog   :  https://blog.csdn.net/ViatorSun
# @Note   :  


import os  
  
def listdir(path, list_name):  
    for file in os.listdir(path):  
        file_path = os.path.join(path, file)  
        if os.path.isdir(file_path):  
            listdir(file_path, list_name)  
        elif os.path.splitext(file_path)[1]=='.jpg':  
            list_name.append(file_path)  
### 回答1: 要获取一个文件夹中新增的文件名,并将其导入一个列表,可以使用Python的os模块和列表操作。 首先,我们需要导入os模块,该模块提供了许多文件和目录操作的功能。 接下来,使用os模块的listdir()函数来获取指定文件夹中的所有文件名。该函数接受一个文件夹路径作为参数,并返回一个包含所有文件名的列表。 然后,我们可以将获取到的文件名列表与之前保存的文件名列表进行比较,找出新增的文件名。我们可以使用列表操作中的差集运算符 “-” 来实现这个比较,将两个列表相减得到新增的文件名列表。 最后,将得到的新增文件名列表用于需要的后续操作。 下面是一个示例代码: ```python import os # 指定文件夹路径 folder_path = '文件夹路径' # 获取文件夹中的所有文件名 file_list = os.listdir(folder_path) # 之前保存的文件名列表 previous_file_list = ['文件1', '文件2', '文件3'] # 获取新增文件名列表 new_file_list = list(set(file_list) - set(previous_file_list)) # 输出新增文件名列表 print(new_file_list) ``` 以上代码中,将文件夹路径替换为你需要操作的文件夹路径,将 previous_file_list 替换为之前保存的文件名列表。最后,将新增文件名列表用于后续操作或进行其他处理。 希望能帮到你! ### 回答2: 要获取一个文件夹中新增的文件名,并将其导入到一个列表中,可以使用Python的os模块和时间模块来实现。 首先,我们需要获得文件夹的路径。可以使用os模块的getcwd()函数来获取当前工作目录的路径,或者使用os模块的chdir()函数来改变当前工作目录。假设我们已经获得了所需要的文件夹路径。 接下来,我们可以使用os模块的listdir()函数来获取文件夹中的所有文件和文件夹的名称。将返回的结果保存在一个列表中。 然后,我们可以遍历这个列表,获取到每个文件和文件夹的名称。这里,我们可以使用os模块的path属性来判断当前遍历的是一个文件还是一个文件夹。如果是文件夹,则可以进一步遍历这个文件夹,并获取到其中的文件名称。 对于新增的文件名,我们可以使用时间模块中的ctime()函数来获取文件的创建时间,并与我们之前记录的时间进行比较。如果文件的创建时间大于之前记录的时间,则表示这是一个新增文件。我们可以将其添加到一个新的列表中。 最后,我们得到了新增文件的列表。我们可以在代码中使用该列表,根据需求进行进一步处理和操作。 综上所述,以上是使用Python获取文件夹中新增文件名,并将其导入列表的方法。希望对您有所帮助! ### 回答3: 要获取文件夹中新增的文件名,并将其导入列表,可以使用Python的os模块和glob模块。 首先,导入所需的模块: ```python import os import glob ``` 然后,定义一个函数来获取文件夹中新增的文件名: ```python def get_new_files(folder_path, existing_files): new_files = [] all_files = glob.glob(os.path.join(folder_path, "*")) for file in all_files: file_name = os.path.basename(file) if file_name not in existing_files: new_files.append(file_name) return new_files ``` 在上述函数中,`folder_path`表示文件夹的路径,`existing_files`是已经存在的文件名列表。函数会遍历文件夹中的所有文件,将新增的文件名添加到`new_files`列表中,并最后返回该列表。 最后,可以调用上述函数来获取新增文件名,并将其导入列表: ```python folder_path = "文件夹路径" existing_files = ["已存在的文件名1", "已存在的文件名2"] new_files = get_new_files(folder_path, existing_files) print(new_files) ``` 在上述代码中,将文件夹路径赋值给`folder_path`变量,将已存在的文件名列表赋值给`existing_files`变量。然后调用`get_new_files`函数,传入这两个参数,获取新增的文件名列表,并将其打印输出。 注意:在使用上述代码之前,需确保已经安装了必要的模块(os和glob模块)及依赖关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViatorSun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值