使用python+shutil将不同文件夹里的相同或不同格式的文件合并到同一文件夹

需求:

        脚本操作不同文件夹里的相同或不同格式的文件时较麻烦,合并到同一文件夹下进行操作比较方便快捷。

实现:

        使用python+shutil将不同文件夹里的相同或不同格式的文件合并到同一文件夹。代码如下:

import os
import glob
import shutil

def merge_txt_jpg(source_txts_path,source_jpgs_path,target_path):

    txt_list = glob.glob(os.path.join(source_txts_path, "*.txt"))
    jpg_list = glob.glob(os.path.join(source_jpgs_path,"*.jpg"))
    index = 0
    for txt_path in txt_list:
        shutil.copyfile(txt_path, os.path.join(target_path,txt_path.split("/")[-1]))
        print(txt_path, index)
        index += 1
    index = 0
    for jpg_path in jpg_list:
        shutil.copyfile(jpg_path, os.path.join(target_path, jpg_path.split("/")[-1]))
        print(jpg_path, index)
        index += 1

if __name__ == '__main__':
    target_path = "/home/PycharmProjects/data/val"
    source_txts_path = "/home/PycharmProjects/detect_t/VOCdevkit/labels/val"
    source_jpgs_path = "/home/PycharmProjects/detect_t/VOCdevkit/images/val"
    merge_txt_jpg(source_txts_path,source_jpgs_path,target_path)

        使用以上代码需要修改原文件所在文件夹路径(source_txts_path、source_jpgs_path)和目标文件夹路径(targetpath)。亲测可用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
你可以使用Python中的pandas库来批量处理同一文件夹下的csv文件,提取几列形成新的文件。具体步骤如下: 1. 导入pandas库和os库 ``` import pandas as pd import os ``` 2. 设置文件夹路径和要提取的列 假设你要处理的csv文件都在文件夹data中,文件夹路径为'./data/',而你要提取的列为第一列和第三列,可以使用以下代码: ``` folder_path = './data/' columns_to_extract = ['列名1', '列名3'] ``` 其中,'列名1'和'列名3'是你要提取的列的名称。 3. 遍历文件夹中的所有csv文件并提取指定列 可以使用os库的listdir函数遍历指定文件夹中的所有文件,再针对每个csv文件提取指定列。具体代码如下: ``` for file_name in os.listdir(folder_path): if file_name.endswith('.csv'): file_path = os.path.join(folder_path, file_name) df = pd.read_csv(file_path) new_df = df[columns_to_extract] new_file_name = os.path.splitext(file_name)[0] + '_extracted.csv' new_file_path = os.path.join(folder_path, new_file_name) new_df.to_csv(new_file_path, index=False) ``` 其中,os.path.splitext(file_name)[0]可以获取文件名(不包括扩展名),再加上'_extracted.csv'作为新文件名。 综上所述,批量提取同一文件夹下的csv文件的指定列形成新的文件的完整代码如下: ``` import pandas as pd import os folder_path = './data/' columns_to_extract = ['列名1', '列名3'] for file_name in os.listdir(folder_path): if file_name.endswith('.csv'): file_path = os.path.join(folder_path, file_name) df = pd.read_csv(file_path) new_df = df[columns_to_extract] new_file_name = os.path.splitext(file_name)[0] + '_extracted.csv' new_file_path = os.path.join(folder_path, new_file_name) new_df.to_csv(new_file_path, index=False) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

limengshi138392

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

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

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

打赏作者

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

抵扣说明:

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

余额充值