文本中格式:一行中有许多列
ADE_train_00000001 airport_terminal
ADE_train_00000002 airport_terminal
ADE_train_00000003 art_gallery
ADE_train_00000004 badlands
ADE_train_00000005 ball_pit
ADE_train_00000006 bathroom
ADE_train_00000007 bathroom
ADE_train_00000008 bathroom
ADE_train_00000009 bathroom
ADE_train_00000010 bathroom
ADE_train_00000011 bathroom
ADE_train_00000012 bathroom
ADE_train_00000013 bathroom
ADE_train_00000014 bathroom
读取txt文本中的每一行的同时,对每一行进行切割为多列
images = []
if os.path.isfile(file_path):
with open(file_path,'r') as f:
for line in f.readlines():
data = line.split('/t/n')
for str in data:
sub_str = str.split(' ')
if sub_str:
images.append(sub_str)
小工程:依据sceneCategories.txt文件,将路径中为outdoor标志的图片路径重建到另一个文件夹中。
import os
import shutil
###################################################
root = '/home/ada/kah/Datasets/ADEChallengeData2016'
file_path = os.path.join(root, 'sceneCategories.txt')
dir_root = os.path.join(root,'ADE20K_outdoor')
images = []
if os.path.isfile(file_path):
with open(file_path,'r') as f:
for line in f.readlines():
data = line.split('/t/n')
for str in data:
sub_str = str.split(' ')
if sub_str:
images.append(sub_str)
# flag = 'images'
flag = 'annotations'
for image in images:
if '_outdoor' in image[1]:
label = 'training' if 'train' in image[0] else 'validation'
dir_path = os.path.join(dir_root,flag,label)
if not os.path.exists(dir_path):
os.makedirs(dir_path)
exp = '.jpg' if 'images' in flag else '.png'
src_path = os.path.join(root,flag,label,image[0]+exp)
dst_path = os.path.join(dir_path,image[0]+exp)
shutil.copy(src_path,dst_path)
print()