时间:2022-09-17 10:29:37 | 栏目:Python代码 | 点击:次
我们有时候会读取一个文件夹中的所有的文件。但是,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数据进行绘图。
附:python顺序的读取文件夹下名称有序的文件
import os path="/home/test/" #待读取的文件夹 path_list=os.listdir(path) path_list.sort() #对读取的路径进行排序 for filename in path_list: print(os.path.join(path,filename))
总结