[英]Modifying the order of reading CSV Files in Python according to the name
我有 1000 個名為Radius_x
的 CSV 文件,其中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
完成類似的方法,這將提供字符串列表而不是路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.