更改路径中文件的显示顺序?

时间:2018-07-11 08:44:07

标签: python directory

我运行此变量,该变量包含脚本打开目录的目录,脚本会打开其中存在的文件,但这些文件会出现乱序:

path_files

['C:\\Users\\user\\Desktop\\AUT\\testb\\AST\\AST.shp',
 'C:\\Users\\user\\Desktop\\AUT\\testb\\PSA\\PSA.shp',
 'C:\\Users\\user\\Desktop\\AUT\\testa\\AST\\AST.shp',
 'C:\\Users\\user\\Desktop\\AUT\\testa\\PSA\\PSA.shp']

由于testatastb之前,所以过去常常以字母顺序显示它们 但现在,即使在文件夹中检查日期后,似乎在文件夹中修改的日期似乎也没有起作用。

我不知道如何使它们始终显示:首先是testa,然后是testb文件。我认为通过在测试后放置“ a”,在下一个放置“ b”,可以确保顺序是这样的。但这显然不是那样。

信息:如果您想知道路径的收集方式,它来自一个从主文件夹读取路径的脚本。它曾经可以正确显示它们,但现在却不能。

获取文件的脚本

def splitpath(path):
folders = []
while 1:
    path, folder = os.path.split(path)

    if folder != "":
        folders.append(folder)
    else:
        if path != "":
            folders.append(path)

        break
folders.reverse()
return folders

rootfolder = r'C:\Users\user\Desktop\AUT'
shapelist = []
for path, subdirs, files in os.walk(rootfolder):
    for name in files:
        if name.endswith('.shp'):
            shapelist.append(os.path.join(path, name))

#List all subfolders
subfolders = set(map(lambda x:splitpath(x)[-3], shapelist))
#Create list of sublists where each sublist are the shapefiles in that subfolder
grouped_shapefiles = [[y for y in shapelist if splitpath(y)[-3]==x] for x in subfolders]

1 个答案:

答案 0 :(得分:2)

答案是对列表进行排序。这样,列表最初可能具有的任何顺序都将变为理想的排序结果。

123456
$SETGLOBAL CCCC
BBBBBB
$SETGLOBAL TTTT