【发布时间】:2018-02-21 16:39:07
【问题描述】:
我有一个包含 1600 张照片的目录,我需要将每个照片的路径保存到一个列表中,然后保存到 .txt 文件中。
这些照片是根据它们应该在列表中的位置来枚举的:img(0), img(1)...,我需要保留这个位置。
我得到的是这个顺序,所以现在在列表索引 2 中我有 img(10):
img(0)img(1)img(10)img(100)img(1000)img(1001)...img(2)img(2)img(20)img(200)@987643332...@@987643332...@ p>
显然,我是唯一遇到此问题的人,因为我没有找到有关此问题的任何讨论。非常感谢你帮助我。
【问题讨论】:
-
不是获取每个图像文件,还是只是按照与您预期不同的顺序获取它们?
-
它正在顺序扫描;它只是按包含所有字符的字典顺序执行此操作,而不是按列表数字部分的数字顺序执行此操作。
-
os.scandir的文档说它以任意顺序返回文件,因此您需要应用所需的排序。您可能正在寻找所谓的“自然排序”。 -
@chepner 文档说它以任意顺序扫描,所以我认为情况并非如此。
-
它是顺序扫描,我认为“任意”意味着用户不知道排序关系(可能是创建时间?inode id?)。我希望如果目录结构
os.scandir中没有发生任何更改,每次调用时都会产生相同的结果。
标签: python list sequence scandir