我使用函数导入图像,但是当我调用函数时出现错误
not enough arguments for format string
。
第一个图像名称为i_00000.tiff
,最后一个图像名称为i_12000.tiff
这是我使用的函数,我想我应该拥有与变量一样多的%s,但我不知道该怎么做
for f in range(x_orig.shape[0]):
img = Image.open(dirname + 'img_t1_%s.tiff' % str(f))
img = np.array(img)
x_orig[f] = img
path = 'labels_reg_holo.csv'
labels = pd.read_csv(path)
y_orig = np.array(labels)
return x_orig, y_orig
x_orig, y_orig = loadImages()
x_orig = x_orig.reshape(-1, x_orig.shape[1], x_orig.shape[2],1)
x_orig.shape, y_orig.shape
,错误消息是
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-83-bdd3c1ba7737> in <module>
----> 1 x_orig, y_orig = loadImages()
2 x_orig = x_orig.reshape(-1, x_orig.shape[1], x_orig.shape[2],1)
3 x_orig.shape, y_orig.shape
<ipython-input-82-82957c28e02f> in loadImages()
5
6 for f in range(x_orig.shape[0]):
----> 7 img = Image.open(dirname + 'img_t1_%s%s.tiff' % str(f))
8 img = np.array(img)
9 x_orig[f] = img
TypeError: not enough arguments for format string
答案 0 :(得分:1)
stacktrace中的代码与您发布的代码不同,但是问题在于以下行:
img = Image.open(dirname + 'img_t1_%s%s.tiff' % str(f))
有两个%s
格式标记,只有一个字符串str(f)
被传递。
答案 1 :(得分:0)
考虑使用format()
函数。易于使用和易于阅读。
Image.open(dirname + 'img_t1_{fname}.tiff'.format(fname=str(f)))