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

时间:2014-02-21 15:16:52

标签: python

这里的第一个计时器,温柔:)

我对编程很缺乏经验,而且我一直在尝试编写一个python脚本,它将从一个目录中获取文件,按文件名的前两个字母对它们进行排序,创建文件夹(在不同的目录中为它们提供相同的文件名称,然后将它们移到那里。

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

  1. AB-0000-00
  2. AB-0001-00
  3. DC-0000-00
  4. 我希望将第一个文件移到dir/中名为AB-0000-00的文件夹中,生成dir/AB-0000-00/AB-0000-00

    第二个应该以{{1​​}}结束。

    最后一个字母有不同的字母,所以我希望它转到dir/AB-0001-00/AB-0001-00

    我尝试用几种不同的方式编写它(使用otherdir/DC-0000-00/DC-0000-00来移动文件),但是处理文件名非常困难,并且无法生成具有任何结果的代码。我对列表的工作也非常简陋,所以任何帮助都会非常非常感激。

    非常感谢!


    编辑:DNA和DSM建议我将问题分解成部分并尝试单独解决每个问题。这听起来微不足道,但它很有启发性,我设法将这些脚本全部写在我自己的部分,然后将它们合并在一起! :)

    Metacore为我提供了我原本要求的大部分内容,所以这也非常适合!

1 个答案:

答案 0 :(得分:1)

这就是你想要的吗?

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\\')

我希望这能让你朝着正确的方向前进:)