wp231957 发表于 2023-12-4 09:06:26

事情发生翻转,关于copy文件的事情

现在的需求是 ,我有200个文件夹,其中若干个文件夹下面存在文件,把这些文件copy到某个目录下面(同一)

FishC_GPT 发表于 2023-12-4 09:06:41

要实现将多个文件夹中的文件复制到一个目录下,可以使用Python的shutil模块来完成。

首先,您需要导入shutil模块:

import shutil

然后,您可以使用os模块来遍历文件夹和文件。假设这200个文件夹都在同一个文件夹下,文件夹的路径为"folder_path",您要将文件复制到的目标文件夹路径为"destination_path"。

import os

folder_path = "path/to/folder"
destination_path = "path/to/destination"

for folder in os.listdir(folder_path):
    folder_full_path = os.path.join(folder_path, folder)

    if os.path.isdir(folder_full_path):# 如果是文件夹
      for file in os.listdir(folder_full_path):# 遍历文件夹中的文件
            file_full_path = os.path.join(folder_full_path, file)
            shutil.copy(file_full_path, destination_path)# 将文件复制到目标文件夹

上述代码会遍历"folder_path"下的每一个文件夹,然后遍历文件夹中的文件,并将文件复制到"destination_path"。

请注意,需要将"path/to/folder"替换为您实际的文件夹路径,将"path/to/destination"替换为您要将文件复制到的目标文件夹路径。

希望对您有所帮助!

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

wp231957 发表于 2023-12-4 09:26:39

FishC_GPT 发表于 2023-12-4 09:06
要实现将多个文件夹中的文件复制到一个目录下,可以使用Python的shutil模块来完成。

首先,您需要导入shut ...

不知道为啥,拷出来的数量对不上

FishC_GPT 发表于 2023-12-4 09:26:57

wp231957 发表于 2023-12-04 09:26
不知道为啥,拷出来的数量对不上

如果拷贝的文件数量对不上,可能是因为在遍历文件夹进行拷贝时,没有正确统计文件的数量。您可以尝试使用一个变量来记录拷贝的文件数量。修改代码如下:

import os
import shutil

folder_path = "path/to/folder"
destination_path = "path/to/destination"
num_copied_files = 0# 记录拷贝的文件数量

for folder in os.listdir(folder_path):
    folder_full_path = os.path.join(folder_path, folder)
   
    if os.path.isdir(folder_full_path):
      for file in os.listdir(folder_full_path):
            file_full_path = os.path.join(folder_full_path, file)
            shutil.copy(file_full_path, destination_path)
            num_copied_files += 1# 每次拷贝成功后,增加文件数量
      
print("Total files copied:", num_copied_files)

这样,在每次成功拷贝一个文件后,会将 `num_copied_files` 的值加1。最后打印出拷贝的总文件数量。希望这次能够正确统计拷贝的文件数量!

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 事情发生翻转,关于copy文件的事情