关于用Python从操作系统读取文件的解释
我正在通过以下方式读取文件夹中的文件:
files = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
这样做会返回一个包含文件名的列表,格式是字符串,比如 ['1.png', '2.png', '3.png']
问题是,每当我从压缩包中提取文件到一个文件夹时,列表中的元素顺序就会乱掉,像是变成了 ['1.png', '3.png', '2.png'] 这样的情况。
而每当我给一个不同的文件夹路径,手动从Chrome一个一个下载图片时,文件的顺序就能保持正常。
我不知道为什么会这样。
我尝试在Windows的查看选项中更改排序方式,比如按创建日期、修改日期、文件大小、尺寸等,但都没有效果。
我只是想知道为什么顺序会乱,我现在有个临时的解决办法,正在用Python脚本里的natsort来排序,但我还是想知道原因。
1 个回答
0
os.listdir 是用来获取文件列表的,它会按照文件系统给出的顺序来排列这些文件。所以,如果你一个一个地下载文件,它们就会保持这个顺序,因为文件系统是按顺序给它们编号的。文件的顺序其实取决于你用来解压文件的软件是怎么决定解压的顺序的。