我有一个fits文件文件夹,所有文件均标记为img_1.fits,img_32.fits,img_2.fits ...等,我想按数字顺序对其进行迭代并将数据附加到数组中,但是我似乎无法对它们进行排序。我已经尝试过;
def load_images_sorted(folder):
images = []
for filename in os.listdir(folder):
file = sorted(os.path.join(folder, filename), key=lambda x: int(os.path.splitext(x.split('_')[1])[0]))
image_data = fits.getdata(file, ext=0,)
images.append(image_data)
return np.array(images)
我该怎么做才能用OS对它们进行排序?还是glob会更有用?
import re
def sorted_alphanumeric(data):
convert = lambda text: int(text) if text.isdigit() else text.lower()
alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
return sorted(data, key=alphanum_key)
def load_images_sorted(folder):
images = []
for filename in sorted_alphanumeric(os.listdir(folder)):
# do whatever with these sorted files
...