为了账号安全,请及时绑定邮箱和手机立即绑定

AttributeError: 'list' 对象没有属性 'split' -PyTorch

AttributeError: 'list' 对象没有属性 'split' -PyTorch

噜噜哒 2023-04-11 15:30:26
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以验证先前语句的类型和值。


查看完整回答
反对 回复 2023-04-11
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信