python 如何对文件顺序的奇偶来分类

  1. 文件夹内保存多个文件(jpg/txt/bat/exe.....任何类型;文件名也是任何;)默认顺序 2.要求:
  2. 在一个文件夹下有500多张照片,照片的命名是随机的,如0001.jgp、0002.jgp、 0500.jgp(这里用文件名顺序直观表达)。现在我想把以上照片分到两个文件夹里,每个文件夹的照片按其现在排列的奇偶数分组; 原文件0001;0002;0003;0004;0005;0006;0007;0008............. 分类后即: (这里用文件名顺序直观表达,实则文件名随机) 多文件夹分类;添加分类数量,例如分类:2: 新建文件夹1:0001.、0003、0005............, 新建文件夹2:0002、0004、0006............,

多文件夹分类;添加分类数量,例如分类:3:
新建文件夹1:0001.、0004、0007............,
新建文件夹2:0002、0005、0008.............。
新建文件夹3:0003、0006、0009.............。

多文件夹分类;添加分类数量,例如分类:4:
新建文件夹1:0001;0005;0009;0013.........
新建文件夹2:0002;0006;0010;0014.........
新建文件夹3:0003;0007;0011;0015.........
新建文件夹4:0004;0008;0012;0016.........

请问如何用python实现

先读取文件名,截取“.”前的字段,python好像不需要转int 直接用就可以了,然后/2判断是否整除,就可以以奇偶分类了

import re
import os
import shutil
path = 你的目录的路径
files = os.listdir(path)
for f in files:
  num = re.sub(r'\D", '', f)
  if (int(num) % 2 == 0):
    shutil.copy(path+f,'偶数文件夹\' + f)
  else:
    shutil.copy(path+f,'奇数文件夹\' + f)
import os
import shutil

n = 2  # 要分组的数量
path = "你的文件路径"
new_paths = ["新建文件夹{}".format(i+1) for i in range(n)]
for new_path in new_paths:
    os.mkdir(new_path)

for i, name in enumerate(os.listdir(path)):
    shutil.copy(os.path.join(path, name), os.path.join(new_paths[i % n], name))

我不知道是否理解正确了你的意思,就是把图片按位置的不同分到不同的文件夹里面吗。其实获得了文件列表后,你给它加个索引就好了,下面给出了一种方式,蠢笨一点,看看是不是你要的效果。

import os
import shutil

if name == "__main__":
path = input("Path of picture:\n")
num = int(input("Number of folders:\n"))

#获取图片的绝对路径,创建图片路径表。(并将顺序倒序,移动的时候用的pop
#。因为文件数量不一定为num的整数,倒序下再pop不需要关注那么多索引。
#也可以不换序,自己给列表加个索引吧)
pic_list = list(map(lambda x:path+"/"+x, os.listdir(path)[::-1]))

#创建文件夹列表
file_list = []
for i in range(num):
    file_list.append("{}/{}".format(path, i+1))

#依照文件夹列表创建文件夹
for i in file_list:
    os.makedirs(i)

#每次从图片列表中取出一个,循环移动到指定文件夹里
index = 0
while pic_list:
    index %= num
    shutil.move(pic_list.pop(), file_list[index])
    index += 1