所以,我的主要目标是让它根据(文件//2000)的数量+1创建目录,并在每个目录中放入2000个文件,剩余的文件放入最终目录(假设它永远不能被2000整除)。
到目前为止,我的脚本看起来像这样:import os
import shutil
def createDirs():'
src='P:\stuff
folderNumber=0
filesNumber=0
for files in os.listdir(src):
filesNumber=filesNumber+1
print filesNumber
totalFolders=(filesNumber//2000)+1
print totalFolders
for folders in range(0, totalFolders):
os.mkdir('P:\Project\User\TEST\folder' + str(folderNumber))
folderNumber=folderNumber+1
def group():
fileType='.txt'
src='P:\Project\User\files'
folderCount=0
fileCount=0
for folders in os.listdir('P:\Project\User\TEST'):
folderCount=folderCount+1
for files in os.listdir('P:\Project\User\TEST\folder' + str(folderCount)):
fileCount=fileCount+1
while fileCount <= 2000:
for file in os.listdir(src):
if file.endswith(filetype):
path = os.path.join(src, file):
shutil.move(path, 'P:\Project\User\TEST\folder' + str(folderCount))
创建目录后,文件移到文件夹1,但文件一直源源不断地涌向文件夹1。
任何帮助和/或改进此过程的方法将不胜感激。
在您的while
语句中,您永远不会增加fileCount
或folderCount
。我可能会删除while语句并将其替换为:
for name in os.listdir(src):
if name.endswith(filetype):
fileCount += 1
if fileCount > 2000:
fileCount = 0
folderCount += 1
path = os.path.join(src, file):
shutil.move(path, 'P:\Project\User\TEST\folder' + str(folderCount))