sjjy1813 发表于 2022-7-22 09:59:02

如何按照文件名的汉字字数筛选并移动文件

有几万个文件,但是部分文件文件名过短,只有几个汉字,系统自带的排序只有按照名字、时间、文件大小排序

用python如何实现按照文件名的长短进行排序,将文件名少于6个字的文件移动到指定文件夹啊?
请大神帮个忙吧

jackz007 发表于 2022-7-22 10:04:14

      这些文件都在同一个文件夹内?

sjjy1813 发表于 2022-7-22 10:07:07

本帖最后由 sjjy1813 于 2022-7-22 10:08 编辑

jackz007 发表于 2022-7-22 10:04
这些文件都在同一个文件夹内?

是的啊,所以比较愁人,无论用什么排序,这些短文件名的文件都在各个地方,一个一个拉这查找,太累了,废人啊

jackz007 发表于 2022-7-22 11:06:03

本帖最后由 jackz007 于 2022-7-22 11:37 编辑

sjjy1813 发表于 2022-7-22 10:07
是的啊,所以比较愁人,无论用什么排序,这些短文件名的文件都在各个地方,一个一个拉这查找,太累了, ...

import os
import shutil

def foo(spath , rpath , n):
    e = []
    for file in os . listdir(spath):
      x = os . path . join(spath , file)
      if os . path . isfile(x):
            if len(file . split('.') . strip()) < n:
                shutil . move(x , os . path . join(rpath , file))
            else:   
                e . append(file)
    for i in range(len(e) - 1):
      for j in range(i + 1 , len(e)):
            if len(e) > len(e):
                e , e = e , e
            elif len(e) == len(e) and e . lower() > e . lower():
                e , e = e , e
    return e

with open("filelist.txt" , "wt") as fp:
    for x in foo('D:\\00.temp\\sss' , 'D:\\00.temp\\ttt' , 6):
      fp . write(x + '\n')

青出于蓝 发表于 2022-7-22 11:14:52

sjjy1813 发表于 2022-7-22 10:07
是的啊,所以比较愁人,无论用什么排序,这些短文件名的文件都在各个地方,一个一个拉这查找,太累了, ...

不是可以按名称排序吗....

sjjy1813 发表于 2022-7-22 15:52:16

青出于蓝 发表于 2022-7-22 11:14
不是可以按名称排序吗....

名称是按首字的字母拍,比如我们的太阳,我们的月亮,我们,我们的星星,这种,排完后,我们这个文件就在中间,如果有很多这样的1、2个字的文件名文件,就排不出来了

sjjy1813 发表于 2022-7-22 16:02:15

jackz007 发表于 2022-7-22 11:06


十分感谢
页: [1]
查看完整版本: 如何按照文件名的汉字字数筛选并移动文件