2016-11-11 2 views
-1

私の主な目標は、(files // 2000)+1の量に基づいてディレクトリを作成し、各ディレクトリに2000個のファイルを置くことです。 2000年までに均等に割り切れることは決してないだろう)。Pythonを使ったファイルのグループ化のトラブル

はこれまでのところ、私のスクリプトは次のようになります。

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

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)) 
関連する問題