如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
import os
import shutil
#path of imgr
path = 'D:\\BaiduNetdiskDownload\\newim\\'
#path of folder
folderPath = 'D:\\BaiduNetdiskDownload\\folderSort\\'
peopleNumber = 61
#new 61 folder numbers as sort_folder_number[61]
sort_folder_number = [x for x in range ( 0 ,peopleNumber)]
# makedir 61 folders
'''
demo功能说明:
在folderPath处新建60个文件夹,
图片存储在path处
给每个文件夹分配150张图片(将9000张图片平均分配到60个文件夹)
Tips:
1: os.path.join(path1,path2...)
this function is used to combine the path,it returns a path which is 'path1/path2...'
2: os.makedirs(path)
this function is used to make a directory(new folder) in the path param
3: shutil.move(oldPath,newPath)
this function is used to move file from param1 to param 2
4: os.path.exists(path)
this function is used to check the filePath(param1) whether exists
'''
for number in sort_folder_number:
new_folder_path = os.path.join(folderPath, '%s' % number) #new_folder_path is ‘folderPath\number'
if not os.path.exists(new_folder_path):
os.makedirs(new_folder_path)
print ( "new a floder named " + str (number) + 'at the path of ' + new_folder_path)
#give the img list
file_list = os.listdir(path)
'''define the first foloderNumber'''
folderNumber = 1
print ( 'there are ' + str ( len (file_list)) + ' files at the path of ' + path)
for i in range ( 0 , len (file_list)):
old_file_path = os.path.join(path, str (i) + '.jpg' )
if os.path.isdir(old_file_path):
'''if the path is a folder,program will pass it'''
print ( 'img does not exist ,path=' + old_file_path + ' it is a dir' )
pass
elif not os.path.exists(old_file_path):
'''if the path does not exist,program will pass it'''
print ( 'img does not exist ,path=' + old_file_path)
pass
else :
'''define the number,it decides how many imgs each people process'''
number = 150 #int(len(file_list)/peopleNumber)
if (i % number = = 0 ):
folderNumber + = 1
new_file_path = os.path.join(folderPath, '%s' % (folderNumber))
if not os.path.exists(new_file_path):
print ( 'not exist path:' + new_file_path)
break
shutil.move(old_file_path,new_file_path)
print ( 'success move file from ' + old_file_path + ' to ' + new_file_path)
|
以上这篇python实现将多个文件分配到多个文件夹的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u011554976/article/details/80615638