如何将文件排序为类似的目录结构?

时间:2015-10-27 05:15:08

标签: python sorting python-3.x

我不太确定如何在没有听起来文盲的情况下放这个,但是我试图编写一个python程序,它接受一堆排序文件,将它们转换为torrent文件,然后将它们排序基于先前转换的文件的不同目录。我有一些代码,它能够成功转换所有文件,但我不知道如何实现排序部分。任何帮助将不胜感激。

import os
import sys
import shutil

for (dir, _, files) in os.walk("C:\Torrents"):
    for f in files:
        path = os.path.join(dir, f)
        print(path)
        os.system('python py3createtorrent.py "' + path + '"
                  "udp://tracker.openbittorrent.com:80/announce"')

shutil.rmtree('__pycache__')

这是目录结构的一个例子:

screenshot showing directory structure in windows explorer

1 个答案:

答案 0 :(得分:0)

如果要做的只是处理lexicographical order中源目录中的文件,可以通过在迭代之前显式排序它们所在的列表来轻松完成,如下所示:

import os
import sys
import shutil

for (dir, _, files) in os.walk("C:\\Torrents"):  # note double backslashes
    for f in sorted(files):  # note call to sorted() function
        path = os.path.join(dir, f)
        print(path)
        os.system('python py3createtorrent.py "' +
                  path +
                  '" "udp://tracker.openbittorrent.com:80/announce"')

shutil.rmtree('__pycache__')

如果py3createtorrent.py脚本将相同的文件夹前缀(例如'DAW_''GAMES_')添加到同一源子目录中的所有文件名,则它们将保持相同的相对顺序目的地文件夹中的彼此。