将文件从一个目录连续移动到三个单独的文件夹

2024-10-02 00:36:47 发布

您现在位置:Python中文网/ 问答频道 /正文

Python用户在这里获得os/shutil库的基础知识。你知道吗

我正在尝试将单个目录文件夹(Test)中的文件连续移动到三个独立的文件夹(01文件夹、02文件夹和03文件夹)。这意味着目录中的第一个文件放入01文件夹,第二个文件放入02文件夹,第三个文件放入03文件夹。从这里开始(不管测试中是否有5个或1000个文件),这个过程会重复自己,其中4个文件会返回到01文件夹,5个文件会进入02文件夹,6个文件进入03,7个文件进入01,8个文件进入02,9个文件进入03-以此类推。你知道吗

这三个文件夹可以放在原始目录中,也可以放在外部。这里的关键是顺序-它们需要被拉进某种有序的循环中。你知道吗

我遇到的问题是,一旦我进入目录,文件选择就会出现问题。如何遍历每个文件,并将它们发送到各自的文件夹中,同时保持它们原来的顺序?你知道吗

import os
import shutil

# Original folder
original = ('C:\\Users\\Vision3\\Desktop\\Test') 

# Destination folders
path1 = ('C:\\Users\\Vision3\\Desktop\\01-Folder')
path2 = ('C:\\Users\\Vision3\\Desktop\\02-Folder')
path3 = ('C:\\Users\\Vision3\\Desktop\\03-Folder')

# Traverse original
for root, subdirs, files, in os.walk(original):
    for file in files:
        # Select the first three files? Grey area here ...
        for x in range(0,2):
            # Move these first three files to 01-Folder?
            shutil.move(x, path1)

Tags: 文件intest目录文件夹for顺序os
1条回答
网友
1楼 · 发布于 2024-10-02 00:36:47

您可以将目标路径设置为字典,然后使用此逻辑。你知道吗

import os
import shutil  

path = "C:\\Users\\USERNAME\\Desktop\\A\\"
path1 = 'C:\\Users\\USERNAME\\Desktop\\01-Folder'
path2 = 'C:\\Users\\USERNAME\\Desktop\\02-Folder'
path3 = 'C:\\Users\\USERNAME\\Desktop\\03-Folder'

d = {1: path1, 2: path2, 3: path3}
c = 1
for root, dirnames, filenames in os.walk(path):
    for filename in filenames:
        filePathVal =  os.path.join(root, filename)
        shutil.move(filePathVal, d[c])
        c += 1
        if c > 3:
            c = 1

注:在python2.7中测试

相关问题 更多 >

    热门问题