使用python根据文件名的前两个字母将文件从一个目录移动到其他目录

2024-05-16 07:12:30 发布

您现在位置:Python中文网/ 问答频道 /正文

第一次来这里,要温柔:)

我对一般的编程非常缺乏经验,我一直在尝试编写一个python脚本,该脚本将从一个目录中提取文件,按文件名的前两个字母排序,在不同的目录中为它们创建文件夹(与文件同名),然后将它们移到那里。你知道吗

如果我们在同一个目录中有三个文件,例如:

  1. AB-0000-00型
  2. AB-0001-00型
  3. 直流-0000-00

我希望将第一个移动到在dir/中创建的名为AB-0000-00的文件夹中,从而生成dir/AB-0000-00/AB-0000-00。你知道吗

第二个结果应该是dir/AB-0001-00/AB-0001-00。你知道吗

最后一个有不同的字母,所以我希望它转到otherdir/DC-0000-00/DC-0000-00。你知道吗

我尝试了几种不同的方法来编写它(使用shutil来移动文件),但是在处理文件名时遇到了非常困难的问题,并且无法生成得到任何结果的代码。我的列表工作也相当初级,所以任何帮助将是非常,非常感谢。你知道吗

非常感谢!你知道吗


编辑:DNA和DSM建议我将问题分解成几个部分,并尝试单独解决每个问题。这听起来很琐碎,但很有启发性,我设法把剧本全部自己写了几部分,然后合并在一起!:)

Metacore为我提供了我最初要求的大部分东西,所以我也非常感激!你知道吗


Tags: 文件目录脚本文件夹ab排序文件名编程
1条回答
网友
1楼 · 发布于 2024-05-16 07:12:30

这是你想要的吗?你知道吗

def sort_move(dir):
    files = os.listdir(dir) #stores every filename as a list item ['f1.txt', 'f2.txt'..]
    for name in files: #goes through the list item by item
        folder = name.split('.')[0] #removes extension such as .txt
        os.mkdir(dir + folder) #creates a new dir using filename
        shutil.move(dir + name, dir + folder + '\\') #moves the file to its new folder, deletes old one

sort_move('c:\\test_folder\\')

我希望这能帮你找到正确的方向:)

相关问题 更多 >