Убрать элементы списка с ошибкой нескольких аргументов

Я пытаюсь удалить много материала из текстового файла, чтобы переписать его. Текстовый файл содержит несколько сотен элементов, каждый из которых состоит из 6 строк. Я получил мой код, работающий до точки, где все строки помещаются в массив, идентифицируются только 2 важные в каждом элементе и удаляются пробелы, но любое дальнейшее удаление дает мне следующую ошибку:

У объекта 'list' нет атрибута 'strip'

Вот мой код:

x = 0
y = 0
names = []
colors = []
array = []

with open("AA_Ivory.txt", "r") as ins:

    for line in ins:
        array.append(line)

def Function (currentElement, lineInSkinElement):
    name = ""
    color = ""
    string = array[currentElement]
    if lineInSkinElement == 1:
        string = [string.strip()]
#       string = [string.strip()]
#       name = [str.strip("\n")]
#       name = [str.strip(";")]
#       name = [str.strip(" ")]
#       name = [str.strip("=")]
        names.append(name)
        return name
#   if lineInSkinElement == 2:
#       color = [str.strip("\t")]
#       color = [str.strip("\n")]
#       color = [str.strip(";")]
#       color = [str.strip(" ")]
#       color = [str.strip("=")]
#       colors.append(color)
#       return color
    print "I got called %s times" % currentElement
    print lineInSkinElement
    print currentElement

for val in array:
    Function(x, y)
    x = x +1
    y = x % 6

#print names
#print colors

в if выписка по именам, удалив первый # даст мне ошибку. Я пытался преобразовать элемент списка в строку, но потом я получаю дополнительные [] вокруг строки

if заявление для color можно игнорировать, я знаю, что это неисправно, и попытка исправить это то, что привело меня к моей текущей проблеме.

2 ответа

Решение

Хорошо, я нашел решение. Это была моя довольно глупая ошибка. Ошибка произошла из-за того, что [] во время выполнения функции strip сделал результат списком или элементом списка. Удаление их исправило это. Чувство облегчения, немного глупо, но облегченно.

но тогда я получаю дополнительные [] вокруг строки

Вы можете пройти через это, чтобы обойти перечисленную строку. Например:

for lst, item in string:
    item = item.strip("\n")
    item = item.strip(";")
    item = item.strip(" ")
    item = item.strip("=")
    name.append(item)
    return name

Это приведет вас к строке в списке, и вы можете добавить очищенную строку.

Если это не то, что вы искали, опубликуйте некоторые данные, с которыми вы работаете, чтобы уточнить.

Вы также можете сделать это в одной строке, используя следующий код.

item = item.strip("\n").strip("=").strip(";").strip()

Последняя полоса удалит пробелы.

Другие вопросы по тегам