将文件从一个目录连续移动到三个单独的文件夹 - Python
Move files from a single directory to three separate folders, consecutively - Python
Python 用户在这里获取 os/shutil 库的基础知识。
我正在尝试将单个目录文件夹 (Test) 中的文件连续移动到三个单独的文件夹(01-Folder、02-Folder 和 03-Folder)。这意味着目录中的第一个文件放在 01-Folder 中,第二个文件放在 02-Folder 中,第三个文件放在 03-Folder 中。从这里开始(无论测试中是否有 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)
您可以将目标路径设置为字典,然后使用此逻辑。
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
Python 用户在这里获取 os/shutil 库的基础知识。
我正在尝试将单个目录文件夹 (Test) 中的文件连续移动到三个单独的文件夹(01-Folder、02-Folder 和 03-Folder)。这意味着目录中的第一个文件放在 01-Folder 中,第二个文件放在 02-Folder 中,第三个文件放在 03-Folder 中。从这里开始(无论测试中是否有 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)
您可以将目标路径设置为字典,然后使用此逻辑。
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