用Python对文件进行分组时遇到麻烦



所以,我的主要目标是让它根据(文件//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语句中,您永远不会增加fileCountfolderCount。我可能会删除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))

相关内容

  • 没有找到相关文章

最新更新