所以,我的主要目标是根据(files // 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。
非常感谢任何改进此过程的帮助和/或方法。
答案 0 :(得分:0)
在您的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))