我们有时候会读取一个文件夹中的所有的文件。但是,os.listdir()返回的文件名不一定是顺序的,这就要求我们对返回的文件名列表进行排序:
这时我们想到利用Epoch后面的数字对其进行排序,具体代码如下:
def file_name(path):
train_loss_list = []
val_loss_list = []
loss_file_name = []
files = os.listdir(path) # 采用listdir来读取所有文件
for i in files:
loss_file_name.append(i.strip("Epoch"))
loss_file_name.sort(key=lambda x: int(x[:x.find("-")])) # 按照前面的数字字符排序
print(loss_file_name)
这样读取的文件名就是按照顺序排列了,之后我们就可以利用切片顺序的从中读取train和val的loss数据进行绘图。