如何使用自定义过滤器对 Windows 中的文件进行排序?

如何使用自定义过滤器对 Windows 中的文件进行排序?

我有大约 80 个文件,这些文件中所有文件都有类似 # 号(文件名的最后一部分有 #1、#2、#3 等)我想用 # 顺序对其进行排序,我该怎么做。

请参阅图片以了解更多信息:

请查看图片以了解更多

答案1

我已经编写并测试了这段代码,它似乎可以为我完成工作。

这一切所做的就是获取每个文件名末尾的数字并将其附加到开头,以便文件资源管理器在排序时优先考虑该数字。

根据您的要求修改变量 x、y 和 dir。

如果您的文件名采用以下格式

样本01.txt

设置 y = 4 将从末尾跳过 4 个字符(.txt)

x = 2 将在跳过 y 个字符后获取 2 个字符(01)

这两个字符将附加到文件名的开头,并将其更改为

01样本.txt

import os

y = 4 #number of characters to skip over from the end of file name
x = 2 #number of characters to copy after skipping y characters
dir = "/home/John/test" #location of your files


n = -y-x  
m =  -y 
for filename in os.listdir(dir):
  filename = os.path.basename(filename)
  num = filename[n:m] #fetch number from the end of the name
  new_name = num+filename #append number to the beginning
  #new_name = new_name[-(len(filename)+1):n]  +new_name[m:]
  #optional line to delete number at the end of the filename 
  old_file = os.path.join(dir, filename)
  new_file = os.path.join(dir, new_name)
  os.rename(old_file,new_file)
  print(new_name)

笔记:

  • 这会修改目录中所有文件的名称,因此请确保文件夹中没有任何您不想修改的文件。
  • 我强烈建议您复制文件夹并进行测试以检测是否存在任何不一致之处。

相关内容