猿问

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

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'

我已经经历了一些类似的问题,但我仍然无法弄清楚如何解决这个问题。我真诚地寻求帮助。


噜噜哒
浏览 146回答 1
1回答

至尊宝的传说

问题出在这对语句中:&nbsp;&nbsp;&nbsp;&nbsp;line&nbsp;=&nbsp;line.rsplit()line到目前为止是一个字符串。你只是把它变成了一个字符串列表。因此,当您尝试下一行时:&nbsp;&nbsp;&nbsp;&nbsp;words&nbsp;=&nbsp;line.split()你正在尝试非法操作。更糟糕的是,在下一行中,您破坏了第二行的结果并将其替换为该split方法的字符串表示形式。我强烈建议您重复有关字符串处理的教程。然后再次完成您的编码。在您编写的每一行或两行之后,添加一个print以验证先前语句的类型和值。
随时随地看视频慕课网APP

相关分类

Python
我要回答