剥离具有多个参数错误的列表项

时间:2017-06-17 20:44:11

标签: python arrays file strip multiple-arguments

我试图从文本文件中删除很多东西来重写它。 文本文件有几百个项目,每个项目由6行组成。 我让我的代码工作到一个点,将所有行放在一个数组中,标识每个项目中唯一的2个重要项并删除空格,但任何进一步的剥离都会给我以下错误:

  

'列表'对象没有属性' 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语句可以忽略,我知道它有问题并试图解决这个问题,这是我当前问题的原因。

3 个答案:

答案 0 :(得分:1)

  

然后我在字符串

周围得到额外的[]

你可以遍历这个来绕过列出的字符串。例如:

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

这将使您进入列表中的字符串,并且可以附加剥离的字符串。

如果这不是您想要的,请发布您正在处理的一些数据以澄清。

答案 1 :(得分:0)

好吧,我找到了解决方案。这是我的一个相当愚蠢的错误。由于[] arroung条带函数使结果成为列表或列表项而发生错误。删除它们固定它。现在感到宽慰,有点愚蠢,但松了一口气。

答案 2 :(得分:0)

您还可以使用以下代码在一行中完成该操作。

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

最后一条将去除空白。