将文件夹内所有文件复制到指定路径

2016年马上要过去了。时光一去不复返呀!
好了不感慨了,年底了,iphone手机照片导出的时候发现照片是这样的格式:E:\DCIM\xxxAPPLE\IMG_xxx.JPG。一年下来照片多多少少也接近1000来张了。
默认图片显示格式
要吧这些照片全部从各个文件夹内选出来放到一个文件夹中还是相当费劲的。那么就写一个小程序,解放ctrl+v吧!!
代码如下:

#coding:utf-8
import os,time
import shutil

def copy_file(path):
    os.chdir(path) #进入文件夹
    for each_file in os.listdir("."): 
        if os.path.isfile(each_file):   #如果文件夹内的东东是文件
            shutil.copy(each_file, dst + "\\" + each_file) #那么复制文件至指定路径
            print("Copy file from %s to %s " % (os.getcwd() + each_file, dst + "\\" + each_file))
        else:
            if each_file in dirset: #dirset字典是为了防止每次调用 copy_file(path) 函数会出现循环进入某一个文件夹
                continue
            dirset.add(each_file)
            copy_file(each_file)    #如果文件夹内的东东是文件夹,那么仍调用此函数继续
            os.chdir("..")  #由于使用了递归,当操作完毕,需返回上一级目录



if __name__ == "__main__" :
    src = "E:\ImagesFromIphone\\DCIM"   #目标路径
    dst = "E:\\ImagesFromIphone\\TotalPictures" #存储路径
    dirset = set()  #程序访问过的文件夹字典
    copy_file(src)

主要使用os, shutil模块,都是python内置的模块。代码比较简单,各处都做了注释。
结果
上图是程序运行的记过,所有DCIM中的图片被复制到TotalPictures文件夹内。

你可以使用C++的文件操作函数来复制文件夹内的文件指定路径。以下是一个简单的示例代码: ```cpp #include <iostream> #include <fstream> #include <sstream> #include <string> #include <filesystem> namespace fs = std::filesystem; // 复制文件指定路径 bool copyFile(const fs::path& source, const fs::path& destination) { std::ifstream src(source, std::ios::binary); std::ofstream dst(destination, std::ios::binary); dst << src.rdbuf(); return src && dst; } // 复制文件夹指定路径 void copyDirectory(const fs::path& sourceDir, const fs::path& destinationDir) { if (!fs::exists(destinationDir)) { fs::create_directory(destinationDir); } for (auto& file : fs::directory_iterator(sourceDir)) { if (fs::is_directory(file)) { copyDirectory(file.path(), destinationDir / file.path().filename()); } else { copyFile(file.path(), destinationDir / file.path().filename()); } } } int main() { // 复制文件夹内的文件到目标路径 fs::path sourceDir = "源文件夹路径"; fs::path destinationDir = "目标文件夹路径"; copyDirectory(sourceDir, destinationDir); return 0; } ``` 在上面的代码中,我们使用了C++17中的std::filesystem库来进行文件操作。我们定义了两个函数,其中copyFile函数用于复制单个文件copyDirectory函数用于复制整个文件夹。最后,在main函数中,我们指定了源文件夹路径和目标文件夹路径,并调用copyDirectory函数来完成复制。 请注意,上述代码仅适用于Windows平台。在其他平台上,文件路径的格式可能会有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值