精华内容
下载资源
问答
  • 个文件夹里面有多个子文件夹,每个子文件夹下面又有多个文件。 需求是要所有子文件夹里面的文件合并到新的文件夹。 实现代码: import os import shutil source_path = os.path.abspath(r'D:\netbian\风景')...

    文件夹【风景】里面有100多个子文件夹,每个子文件夹下面又有20多张图片。
    在这里插入图片描述
    在这里插入图片描述
    需求是要把所有子文件夹里面的图片合并到新的文件夹。
    在这里插入图片描述
    实现代码:

    import os
    import shutil
    
    source_path = os.path.abspath(r'D:\netbian\风景')     #源文件夹
    target_path = os.path.abspath(r'D:\netbian\all')    #目标文件夹
    
    if not os.path.exists(target_path):     #目标文件夹不存在就新建
        os.makedirs(target_path)
    
    if os.path.exists(source_path):     #源文件夹存在才执行    
        # root 所指的是当前正在遍历的这个文件夹的本身的地址
        # dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目录)
        # files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录)
        
        for root, dirs, files in os.walk(source_path):
            for file in files:
                src_file = os.path.join(root, file)
                shutil.copy(src_file, target_path)
                print(src_file)
    
    print('复制完成')
    
    

    在这里插入图片描述

    展开全文
  • linux文件夹合并为一个文件夹: 新建result 文件夹: mkdir result 下面两个命令都可以: cp {0,1,2}*/* result/ \cp -rf --link {0,1,2}*/* result/ 解释: \cp -rf --link dir2/* dir1/ cp 即copy缩写,...

    linux把 子文件夹合并为一个文件夹:

    新建result 文件夹:

    mkdir result
    

    在这里插入图片描述

    下面两个命令都可以:

    cp {0,1,2}*/* result/
    
    \cp -rf --link {0,1,2}*/* result/
    

    解释:

    \cp -rf --link dir2/* dir1/
    
    cp 即copy缩写, 通过 alias命令可以看到是 cp -i 的缩写,系统防止你覆盖掉重要文件,所以会有提示,在cp之前加个反斜杠 \ 可以直接使用系统命令
    -r 递归目录
    -f 强制覆盖
    --link 创建的是文件硬链接,不是副本
    
    展开全文
  • Excel用Power Query文件夹下所有文件合并为一个与合并多个表格 ...有了 Power Query 后,不用再写代码,直接用它就可以合并个文件夹(可包含子文件夹)下所有的 Excel 文件与一个 Excel 文档中所有 Sheet。...

    Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格

    在 Excel Power Query 未出来之前,把文件夹下所有文件合并为一个与合并同一工作表中的多个工作表,需要用 VBA 实现,比较麻烦。有了 Power Query 后,不用再写代码,直接用它就可以合并一个文件夹(可包含子文件夹)下所有的 Excel 文件与一个 Excel 文档中所有 Sheet。用 Power Query 合并文件,主要是通过查询导入的办法实现,以下就是它们的具体操作方法,实例中操作所用版本均为 Excel 2016。

     

    一、Excel用Power Query把多个工作表Sheet合并到一个工作表

    1、选择“数据”选项卡,单击“新建查询”,在弹出的菜单中依次选择“从文件”→ 从工作簿,打开“导入数据”窗口,定位到要合并的Excel文件所在的文件夹,双击要合并的文件(如 Power Query合并多个工作表),则弹出提示正在连接文件小窗口,连接完成后,打开“导航器”窗口,勾选“选择多项”,依次勾选“1月至6月”6个工作表,单击右下角的“加载”,打开“查询编辑器”窗口,选中左边的“1月”,单击“表格图标”,在弹出的菜单中选择“追加查询”,打开“追加”窗口,单击下拉列表框,在弹出的选项中选择“2月”,则把工作表“2月的数据”添加到“1月的数据”后面;同样方法添加“3月至6月的数据”,添加完成后,单击“查询编辑器”左上角的“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则“1月至6月的数据”添加到 Excel 文档中;操作过程步骤,如图1所示:

    提示:当从 Excel 文件导入数据时,在最后一步把数据添加到 Excel 文档时,可能会弹出“初始化数据源失败”的提示,单击“确定”即可。

     

    2、在“查询编辑器”窗口,追加合并数据时,除可以从“表格图标”选择“追加查询”外,还可以直接选择窗口右上角的“追加查询”,如图2所示:

    图2

    3、如果合并的工作表中有重复记录,把数据添加到一个表(如“1月”)后,可以单击“表格图标”,在弹出的菜单中选择“删除重复项”,如图3所示:

    图3

     

    二、Excel用Power Query把多个文件合并成一个文件,仅把 Sheet 添加到工作薄并未合并数据

    1、单击“数据”选项卡下的“新建查询”,依次选择“从文件”→ 从工作薄,打开“导入数据”窗口,定位到要合并的Excel文件所在的文件夹,双击要合并的文件(如 Power Query 合并查询),则所选文件导入到“导航器”窗口,勾选“选择多项”,依次勾选“Sheet1 和 Sheet2”,单击“编辑”,打开“查询编辑器”窗口,单击窗口右上角的“新建源”,在弹出的菜单中依次选择“文件””→ Excel,再次打开“导入数据”窗口,同样定位要合并文件所在文件夹,双击要导入文件(如 Power Query合并多个工作表),打开“导航器”窗口,再次勾选“选择多项”,并依次选择“1月至6月”六个工作表,单击“确定”,返回“查询编辑器”窗口,单击“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则两个 Excel 文件的8个工作表合并到一个 Excel 文件中;操作过程步骤,如图4所示:

    2、以上演示了把两个 Excel 文件合并为一个文件,如果要把更多的 Excel 文件合并为一个文件,只需在“查询编辑器”窗口重复选择“新建源”,选择 Excel 文件即可。

     

     

    三、Excel用Power Query把同一文件夹下所有文件合并成一个文件,文件夹下可包含子文件夹

    1、选择“数据”选项卡,单击“新建查询”,依次选择“从文件”→ 从文件夹,打开“文件夹”窗口,单击“浏览”,打开“浏览文件夹”窗口,定位到要合并的 Excel 文件所在的父文件夹,选择要合并的 Excel 文件所在文件夹,单击“确定”,打开“查询编辑器”窗口;选中第三列,按住 Shift,再选中第八列,右键选中的列,在弹出的菜单中选择“删除列”,把它们删除;选择“添加列”选项卡,单击“添加自定义列”,打开“添加自定义列”窗口,在“自定义列公式”下输入 =Excel.Workbook([Content]),单击“确定”;返回“查询编辑器”窗口,选中 Custom 列,单击 Custom 右边的双箭头图标,在打开的小窗口中,不勾选“使用原始列名作为前缀”,单击“确定”;单击 Custom.Data 列选中它,再单击 Custom.Data 右边的双箭头图标,在打开的窗口中,勾选“使用原始列名作为前缀”,单击“确定”;把第一至第四列和后三列删除;选择“开始”选项卡,单击“关闭并上载”,在弹出的菜单中选择“关闭并上载”,则所选文件夹下的全部 Excel 文件合并到一个文件;操作过程步骤,如图5所示:

    2、提示:在“自定义列公式”下输入的公式 =Excel.Workbook([Content]),是区分大小写,注意不要输错。

     

     

    四、Excel Power Query 不显示“多项选择”的原因及解决方法

    1、Power Query 要求浏览器版本在 ie9 以上;另外,如果浏览设置了不显示图片,即没有勾选“显示图片”,如图6所示:

    图6

    2、“导航器”中的“选择多项”前的复选框与“查询编辑器”中列字段右边的双箭头图标都不显示,图7是“导航器”中的“选择多项”前的复选框未显示的情况:

    图7

    3、只要勾选了 ie 中的“显示图片”,它们就会显示,因此,遇到窗口显示不正常的情况不要忘了查看 ie 是否为 9 以上版本与是否勾选了显示图片。

    转载于:https://www.cnblogs.com/niewd/p/11095828.html

    展开全文
  • 合并文件夹

    热门讨论 2017-05-22 17:38:43
    背景需要按照一定规则合并大量文件夹 这些文件夹是按照命名分类的 这些文件夹的命名存在一定规律,比如A_001_005,A_004-010,需要连续的文件夹合并需求...将该三个文件夹合并为一个文件夹: 规则二: 将该两个

    背景

    需要按照一定规则合并大量文件夹
    这些文件夹是按照命名分类的
    这些文件夹的命名存在一定规律,比如A_001_005,A_004-010,需要把连续的文件夹合并

    需求说明

    1、根据指定目录下,找到文件夹所在根目录;该目录下包含需要合并的文件夹
    如:
    这里写图片描述
    2、将待合并的文件夹,合并到一个主文件夹中;
    该合并规则如下:

    规则一:
    这里写图片描述
    将该三个文件夹合并为一个文件夹:
    这里写图片描述

    规则二:
    这里写图片描述
    将该两个文件夹合并为一个文件夹:
    这里写图片描述

    【注】规则一与二的区别便是:规则一是从001开始,规则二是从004开始。也就是开头并不能确定是从第几景开始的,可能是001或者002或者003……

    规则三:
    这里写图片描述
    从文件夹名字可以看出:中间缺少了006景数据,那么要合并的文件夹就是
    这里写图片描述
    最终结果表示为:
    这里写图片描述
    3、将每个文件夹中的
    四个文件:copyfinished、created、对应的paf文件进行剪切到合并后文件夹中。
    4、全部合并完成后,删除原文件夹

    代码

    public void GetmergeFiles()
            {
                try
                {
                    string lbltext = "";
                    labelControl1.Invoke(new Action<String>(p =>
                    {
                        labelControl1.Text = p;
                    }), lbltext);
                    DirectoryInfo dir = new DirectoryInfo(_strOldmergeTwo);
                    DirectoryInfo[] folders = dir.GetDirectories();
                    List<string> type = GetAllTypeFolders(folders);
                    int index = 1;
                    foreach (string item in type)
                    {
                        List<string> subfolders = GetFolderNames(folders, item);
                        List<string> processed = ProcessFolders(_strOldmergeTwo, subfolders, item);
                        while (processed != null)
                        {
                            subfolders = processed;
                            processed = ProcessFolders(_strOldmergeTwo, subfolders, item);
                        }
                        int a = 100 * index / type.Count;
                        Workermerge.ReportProgress(a);
                        index++;
                        //string lbltext1 = "正在处理";
                        //labelControl1.Invoke(new Action<String>(p =>
                        //{
                        //    labelControl1.Text = p;
                        //}), lbltext1);
                    }
                    //string[] strSF = Directory.GetDirectories(_strOldmergeTwo, "D*_*_*", SearchOption.AllDirectories);
                    m_Log.Info("所有文件获取完毕");
                }
                catch (Exception ex)
                {
                    m_Log.Error(ex);
                    XtraMessageBox.Show("处理失败", "提示", MessageBoxButtons.OK);
                }
    
    
            }
    
            //筛选出所有文件夹的种类
            public  List<string> GetAllTypeFolders(DirectoryInfo[] folders)
            {
                List<string> type = new List<string>();
                for (int i = 0; i < folders.Length; i++)
                {
                    string[] str1 = folders[i].ToString().Split('_');
                    string firstword = str1[0];
                    if (!type.Contains(firstword))
                    {
                        type.Add(firstword);
                    }
                }
                return type;
            }
    
    
            //获取文件夹中包含的特殊字段的文件夹
            public  List<string> GetFolderNames(DirectoryInfo[] folders, string folder_type)
            {
                List<string> folder_name = new List<string>();
    
                for (int i = 0; i < folders.Length; i++)
                {
                    if (folders[i].Name.Contains(folder_type))
                    {
                        folder_name.Add(folders[i].Name.ToString());
                    }
                }
                return folder_name;
            }
    
    
            //处理文件夹
            public  List<string> ProcessFolders(string root_path, List<string> folders, string folder_type)
            {
                List<string> processed_folders = new List<string>();
                List<string> serial_folders = new List<string>();
                List<string> rest_folders = new List<string>();
                //将序列号存到数组中
                List<string> order = new List<string>();
                foreach (var item_name in folders)
                {
                    string[] names = item_name.Split('_');
                    order.Add(names[1]);
                    order.Add(names[2]);
                }
                bool serial_flag = true;
                for (int i = 1; i < order.Count - 1; i = i + 2)//判断偶数位确定是否连续
                {
                    int num1 = int.Parse(order[i]) + 1;
                    int num2 = int.Parse(order[i + 1]);
                    if (num1 != num2)
                    {
                        serial_flag = false;
                        for (int j = 0; j < i / 2 + 1; j++)
                        {
                            serial_folders.Add(folders[j]);
                        }
                        MergeFolders(root_path, serial_folders, folder_type);
                        for (int k = i / 2 + 1; k < folders.Count; k++)
                        {
                            rest_folders.Add(folders[k]);
                        }
                    }
                }
                if (serial_flag == true)
                {
                    MergeFolders(root_path, folders, folder_type);
                    processed_folders = null;
                }
                else
                {
                    processed_folders = rest_folders;
                }
                return processed_folders;
            }
    
    
            //合并文件夹
            private  bool MergeFolders(string root_path, List<string> folders, string folder_type)
            {
                bool flag = false;
                try
                {
                    //将序列号存到数组中
                    List<string> order = new List<string>();
                    foreach (var item_name in folders)
                    {
                        string[] names = item_name.Split('_');
                        order.Add(names[1]);
                        order.Add(names[2]);
                    }
    
                    //创建文件夹
                    string start = order[0].ToString();
                    string end = order[order.Count - 1].ToString();
                    string newfolder = folder_type + "_" + start + "_" + end;
                    DirectoryInfo dir = new DirectoryInfo(_strNewmergeTwo);
                    dir.CreateSubdirectory(newfolder);
                    //移动文件
                    foreach (string item_folder in folders)
                    {
                        DirectoryInfo sub_dir = new DirectoryInfo(root_path + "\\" + item_folder);
                        FileInfo[] file = sub_dir.GetFiles();
                        for (int i = 0; i < file.Length; i++)
                        {
                            if (!File.Exists(_strNewmergeTwo + "\\" + newfolder + "\\" + file[i]))
                            {
                                File.Move(root_path + "\\" + item_folder + "\\" + file[i], _strNewmergeTwo + "\\" + newfolder + "\\" + file[i]);
                            }
                        }
                        //if (item_folder != newfolder)//避免文件夹为1误删
                        //{
                            Directory.Delete(root_path + "\\" + item_folder, true);//删除原文件夹
                        //}
                    }
                    string lbltext1 = labelControl1.Text + "\n" + newfolder + "处理完毕";
                    labelControl1.Invoke(new Action<String>(p =>
                    {
                        labelControl1.Text = p;
                    }), lbltext1);
    
                    flag = true;
                }
                catch (Exception ex)
                {
                    m_Log.Error(ex);
                }
                return flag;
            }
    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201804/19/1524123834_649331.png) lucene能不能这些小的文件,合并成一个或几个大文件?看到有片段合并就是不会。我用的lucene7.0
  • Question to say "I can!" 如何将多个文件夹中的文件合并到一个文件夹中 ...有两种方法,一种是传统的命令行,另一...我怎么他们一次合并到一个文件夹? 答:你解压后的文件夹,放在D盘的根目录下,文件夹...
  • 如何快速将多个文件夹下内容合并到一个文件夹

    万次阅读 多人点赞 2019-01-10 10:56:53
    在需要合并的文件夹路径下新建一个文件夹和tt文件,命名看自己习惯 我命名了一个all的文件夹和c名称的文件 打开c.txt,输入如下内容: for /f "delims=" %%p in ('dir /b/ad') do copy %%p\*.* e:\tt...
  • 本来想用os.listdir遍历的,但发现用os.walk更好,通过...另外还有判断是否文件夹的代码: #判断是文件夹还是文件 if os.path.isdir(new_filedir): print(1) else: print(2) new_filedir = r'E:\new_p...
  • 将文件夹下面若干个文件夹中同名文件EXCEL进行合并到另一个文件下
  • 合并同一个文件夹下的多个txt文件 具体步骤如下:假设想要合并0,1,2,3,4,5,6这几个txt文件
  • 数据集下载下来有多部分,part1,part2,part3…需要将这多部分合成一部分。查了下,没找到直接可以达到效果的命令行(试过cat,rsync等) 解决方案: 写一段python脚本:merge_folder.py #!/usr/bin/env ...
  • for /r D:\说话人识别\westwing2 %f in (*.wav) do copy "%f" d:\test
  • 工作中常会遇到合并Excel文件的需求,Excel文件数量不确定,里面的Sheet 数量是可变的,Sheet Name是可变的,所以,需要用到遍历一个文件夹下有几个Excel文件,判断每个 Excel文件有几个Sheet,Sheet name是什么。 ...
  • cp -rap [src] [dst] 转载于:https://www.cnblogs.com/haiyang21/p/9043055.html
  • 如果想它们解压缩到同一个文件夹(举例名为unzipped),命令为: unzip '*.zip' -d unzipped *可以根据共同前后缀灵活运用。   但是这样我还是不满意。 在同一个文件夹后,解压做的1.zip, 2....
  • 怎么把几个PDF文件合并成一个PDF

    万次阅读 2017-02-17 11:14:15
    有时一份pdf文档资料会被分成多部分,在整理的时候可能需要将这些文件合并到一起,那么怎样可以将这多pdf文件合并成一呢?下面就教你怎样用PDF编辑器对pdf文件进行合并。  ​ 方法/步骤 用PDF编辑器...
  • 如何把几个Excel文件合并在一起

    千次阅读 2020-05-12 21:49:05
    如何把几个Excel文件合并在一起#### 几个Excel文件内的数据格式都差不多,现在我们需要它们合并在一个Excel表格当中。 新建一个Excel文件 右键单击Sheet1,选择“查看代码” 在对话框中输入以下代码 sub 合并当前...
  • pandas合并个文件夹内所有excel表格

    千次阅读 热门讨论 2019-03-29 09:46:16
    2.用pandas遍历读取每excel表格,生成一DataFrame类型组成的列表,用pandas的concat()方法,合并表格。 3.用to_excel()方法生成新的excel文件 ,to_excel(path,index),path为保存路径,index默认为True,会ID...
  • 有以下,文件夹中的文件,共29。 各个excel有多sheet文件,不同excel文件当中同一sheet文件的数据结构是相同的,如下: 现在需要将多excel中的相同命名的sheet合并到同一sheet当中,组合成一excel...
  • 办公经常需要合并文件夹下所有表格,此方法很方便 保存了
  • # 将文件夹下的多csv文件合并成一CSV文件 def get_files(): for filepath,dirnames,filenames in os.walk(r'/media/shuaishuai/JSY/实验数据备份/snippets/feature/ApplyEyeMakeup'): dirnames.sort() # CSV...
  • import os.path #文件夹遍历函数 #获取目标文件夹的路径 filedir = 'C:/Users/Administrator/Desktop/a' #获取当前文件夹中的文件名称列表 filenames=os.listdir(filedir) #打开当前目录下的result.txt文件,如果...
  • # -*- coding:utf8 -*- import os.path import os import csv ...# f是倒数第二级文件夹eg:2017-11-01的列表 ...# 判断是否是文件夹 ...# 排除隐藏文件夹 ...必须是先csv文件转换为utf-8的格式才能转换成功
  • Git 合并指定文件或文件夹

    千次阅读 2018-04-25 03:08:22
    基于master生成的开发分支daily/1.0.0,合并至develop或release等分支进行想要测试时,出现超多冲突,而自己开发的地方只涉及几个文件或文件夹; 诉求 自己的改动的文件合并到目标分支并在Jenkins构建; 不...
  • VBA批量合并数据
  • 如何将几个pdf合并成一个pdf?想必很多朋友在日常的工作中,都会接触到pdf文件。有时候我们面对大量的pdf文件,为了方便查看和管理,就需要将几个pdf合并成一个pdf,那么具体该怎么操作呢?相信有不少朋友都遇到过...
  • VSCode同时打开多个文件夹

    千次阅读 2019-04-12 17:10:36
    当我们个文件夹拖入到 VSCode 中后,如果再拖入一个文件夹,就会发现原来打开的文件夹被覆盖了,那么如果同时打开多个文件夹呢? 点击「文件」——「将文件夹添加到工作区…」 ,这样就可以同时打开多个文件夹...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,688
精华内容 29,075
关键字:

把几个文件夹合并