我们有时候会读取一个文件夹中的所有的文件。但是,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))
总结
到此这篇关于用Python按顺序读取文件夹中文件的文章就介绍到这了,更多相关Python顺序读取文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!