根据名称修改读取Python中CSV文件的顺序



我有1000个CSV文件,名称为Radius_x,其中x代表0,1,2...11,12,13...999。但当我阅读这些文件并试图分析结果时,我希望按照上面列出的整数顺序阅读。但是代码读起来如下(例如(:....145,146,147,148,149,15,150,150...159,16,160,161,......等等

我知道,如果我们将CSV文件重命名为Radius_xyz,其中xyz = 000,001,002,003,....010,011,012.....999,问题就可以解决。请帮助我如何进行。

要在python中对路径列表进行数字排序,首先找到要打开的所有文件,然后用提取数字的键对其进行可迭代排序。

pathlib:

from pathlib import Path
files = list(Path("/tmp/so/").glob("Radius_*.csv"))  # Path.glob returns a generator which needs to be put in a list
files.sort(key=lambda p: int(p.stem[7:]))  # `Radius_` length is 7

files包含

[PosixPath('/tmp/so/Radius_1.csv'),
PosixPath('/tmp/so/Radius_2.csv'),
PosixPath('/tmp/so/Radius_3.csv'),
PosixPath('/tmp/so/Radius_4.csv'),
PosixPath('/tmp/so/Radius_5.csv'),
PosixPath('/tmp/so/Radius_6.csv'),
PosixPath('/tmp/so/Radius_7.csv'),
PosixPath('/tmp/so/Radius_8.csv'),
PosixPath('/tmp/so/Radius_9.csv'),
PosixPath('/tmp/so/Radius_10.csv'),
PosixPath('/tmp/so/Radius_11.csv'),
PosixPath('/tmp/so/Radius_12.csv'),
PosixPath('/tmp/so/Radius_13.csv'),
PosixPath('/tmp/so/Radius_14.csv'),
PosixPath('/tmp/so/Radius_15.csv'),
PosixPath('/tmp/so/Radius_16.csv'),
PosixPath('/tmp/so/Radius_17.csv'),
PosixPath('/tmp/so/Radius_18.csv'),
PosixPath('/tmp/so/Radius_19.csv'),
PosixPath('/tmp/so/Radius_20.csv')]

注意files是一个路径列表,而不是字符串,但大多数处理文件的函数都接受这两种类型。

glob也可以使用类似的方法,它会给出一个字符串列表,而不是路径。

最新更新