Python 上的类型错误:并非所有参数都在字符串格式化期间转换

Type error on Python: not all arguments converted during string formatting

我正在尝试使用 pytorch 随机变换将图像乘以图像数据集。

该代码曾经有效,但今天它似乎会产生格式错误。

将数据循环到更大的样本中。

or _ in range(80):
    for img, label in dataset:
        save_image(img, 'img'+str(img_num)+'.png' % '/media/data/abc', normalize=True)
        print(img_num)
        img_num += 1

为什么 python 代码会产生字符串格式错误?因此

Traceback (most recent call last):
  File "/home/user/PycharmProjects/augment/dataaugment.py", line 26, in <module>
    save_image(img, 'img'+str(img_num)+'.png' % '/media/data/abc', normalize=True)
TypeError: not all arguments converted during string formatting

有什么解决办法或者我有什么错误吗?

当您在字符串上使用 % 运算符时,第一个字符串需要具有格式占位符,这些占位符将被 % 之后的值替换。但是你在第一个字符串中没有%s

创建路径名时,您应该使用 os.path.join() 而不是字符串操作。

和 f-strings 比连接和 str() 调用在将变量与字符串组合时更容易阅读。

import os

for _ in range(80):
    for img, label in dataset:
        save_image(img, os.path.join('/media/data/abc', f'img{img_num}.png', normalize=True)
        print(img_num)
        img_num += 1