class Flowers(data.Dataset):def __init__(self, txt, transform=None, target_transform=None, loader=default_loader): super(Flowers, self).__init__() fh = open(txt, 'r') images = [] for line in fh: line = line.strip('\n') line = line.rsplit() words = line.split() words = str(list.split) images.append((words[0], int(words[1]))) self.imgs = images self.transform = transform self.target_transform = target_transform self.loader = loader正如上面的代码,我试图通过一个充满路径的文本来读取我的图片数据集。但是,我收到这样的错误:File "/Users/paulwang/Library/Application Support/JetBrains/PyCharmCE2020.1/scratches/VGGNet.py", line 130, in <module> train_data = Flowers(txt='/Users/paulwang/Desktop/flower_photos_train/train.txt', transform=transform) File "/Users/paulwang/Library/Application Support/JetBrains/PyCharmCE2020.1/scratches/VGGNet.py", line 100, in __init__ words = line.split()AttributeError: 'list' object has no attribute 'split'我已经经历了一些类似的问题,但我仍然无法弄清楚如何解决这个问题。我真诚地寻求帮助。
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
问题出在这对语句中:
line = line.rsplit()
line
到目前为止是一个字符串。你只是把它变成了一个字符串列表。因此,当您尝试下一行时:
words = line.split()
你正在尝试非法操作。更糟糕的是,在下一行中,您破坏了第二行的结果并将其替换为该split
方法的字符串表示形式。
我强烈建议您重复有关字符串处理的教程。然后再次完成您的编码。在您编写的每一行或两行之后,添加一个print
以验证先前语句的类型和值。
添加回答
举报
0/150
提交
取消