python如何遍历文件夹获得相同扩展名的所有文件

我们有时候需要获得某个文件夹下具有某个扩展名的所有文件,比如在某个数据文件夹下返回所有.jpg扩展名的图片,本文讲解如何遍历整个文件夹并定位具有相同扩展名的文件

1.如何遍历整个文件夹

import os

dir="C:\\Users\\wuyanzu"  #文件夹名称
filelist=[]  
for i in os.listdir(dir):  #遍历整个文件夹
    path = os.path.join(dir, i)
    if os.path.isfile(path):  #判断是否为一个文件,排除文件夹
        filelist.append(i)
for i in filelist:
    print(i)              	  

如果将子文件夹也遍历的话,需加一个递归:

import os

def CrossOver(dir,fl):
    for i in os.listdir(dir):  #遍历整个文件夹
        path = os.path.join(dir, i)
        if os.path.isfile(path):  #判断是否为一个文件,排除文件夹
            fl.append(i)
        elif os.path.isdir(path):
            newdir=path
            CrossOver(newdir,fl)
    return fl
directory="C:\\Users\\waq\\Pictures\\Saved Pictures"  #文件夹名称
filelist=[]
output=CrossOver(directory,filelist)
for i in output:
    print(i)

2.获得指定扩展名的所有文件

以“.jpg”为扩展名,不遍历子文件夹为例:

dir="C:\\Users\\waq\\Pictures\\Saved Pictures"  #文件夹名称
filelist=[]
for i in os.listdir(dir):  #遍历整个文件夹
    path = os.path.join(dir, i)
    if os.path.isfile(path):  #判断是否为一个文件,排除文件夹
        if os.path.splitext(path)[1]==".jpg":  #判断文件扩展名是否为“.jpg”
            filelist.append(i)
for i in filelist:
    print(i)

判断文件扩展名详细功能可点查询。

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用 Python 的 glob 模块来遍历文件夹中的 csv 文件,然后使用 pandas 库的 merge 方法将它们合并起来。 代码示例: ``` import glob import pandas as pd # 获取当前工作目录中所有 csv 文件文件名 csv_files = glob.glob('*.csv') # 读取第一个 csv 文件并将其赋值给 df df = pd.read_csv(csv_files[0]) # 从第二个 csv 文件开始,逐个读取并与 df 合并 for csv_file in csv_files[1:]: df = df.merge(pd.read_csv(csv_file), on='common_column_name') # 将合并后的数据保存到一个新的 csv 文件中 df.to_csv('merged_data.csv', index=False) ``` 在这个示例中,我们假设所有 csv 文件都有一个名为 "common_column_name" 的公共列,我们希望按照这一列将它们合并起来。如果 csv 文件没有公共列,可以使用其他列名或索引来合并。 ### 回答2: 遍历文件夹并将相同名称的CSV文件合并可以通过以下步骤实现: 1. 首先,使用编程语言(如Python)中的目录遍历功能打开指定的文件夹。 2. 使用文件夹遍历功能获取文件夹中的所有文件名。 3. 遍历文件夹中的每个文件名,并使用条件语句检查文件是否为CSV文件。 4. 如果文件是CSV文件,则提取文件名并保存为变量。 5. 检查保存文件名的变量是否已在之前出现过。如果已经出现,则表示存在相同名称的CSV文件。 6. 如果存在相同名称的CSV文件,则将当前文件的内容追加到之前已经创建的合并文件中。如果合并文件不存在,则创建一个新文件。 7. 完成遍历并合并所有相同名称的CSV文件后,关闭所有文件。 8. 最后,可以检查合并的文件是否包含了所有相同名称的CSV文件的内容。 这样,就可以通过文件夹遍历并检查相同名称的CSV文件,将它们逐个合并到一个文件中。在实现过程中,还可以根据需要添加更多的功能,如指定输出文件的路径和格式等。 ### 回答3: 遍历文件夹并合并相同名称的csv文件可以通过以下步骤实现: 1. 首先,选择要遍历文件夹。可以使用`os`模块中的`listdir`函数来获取文件夹中的所有文件文件夹列表。 2. 遍历文件夹中的所有文件文件夹。可以使用一个`for`循环来遍历列表中的每个元素。 3. 检查每个文件扩展名是否为".csv"。可以使用`os`模块中的`path.splitext`函数来提取文件扩展名,并使用一个`if`语句来判断是否为".csv"文件。 4. 提取每个文件的名称。可以使用`os`模块中的`path.basename`函数来提取文件的名称。 5. 创建一个字典来存储相同名称的csv文件。字典的键是文件名,值是包含相同名称的csv文件列表的列表。可以使用一个`if`语句来检查字典中是否已存在相同名称的键,如果存在,则将文件添加到对应的列表中,如果不存在,则创建一个新的键和相应的列表。 6. 合并相同名称的csv文件。对于每个键,遍历其对应的csv文件列表,并使用`pandas`库中的`read_csv`函数读取文件内容,并使用`pandas`库中的`concat`函数将所有文件合并成一个DataFrame。 7. 将合并后的DataFrame保存为一个新的csv文件。可以使用`pandas`库中的`to_csv`函数将DataFrame保存为csv文件。 下面是一个示例代码: ```python import os import pandas as pd folder_path = "文件夹路径" file_dict = {} for file_name in os.listdir(folder_path): file_path = os.path.join(folder_path, file_name) if os.path.isfile(file_path) and os.path.splitext(file_name)[1] == ".csv": base_name = os.path.splitext(file_name)[0] if base_name in file_dict: file_dict[base_name].append(file_path) else: file_dict[base_name] = [file_path] for base_name, file_list in file_dict.items(): dfs = [pd.read_csv(file) for file in file_list] merged_df = pd.concat(dfs) merged_df.to_csv(base_name + "_merged.csv", index=False) ``` 这样就可以遍历文件夹,找到相同名称的csv文件,并将它们合并到以原文件名命名的新的csv文件中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值