2017-02-14 82 views
1

我想将1500行的文件分隔成元数据和数据。else和elif的语法错误

以下是我有:

headerLines = [] 
dataLines = [] 
for line in lineList: 
    if (len(line) > 0 and (line[0] == #)) : 
     headerLines.append(line)  
    elif (len(line) > 0 and (line[0] == U): 
     dataLines.append(line) 
print("we have {} lines of metadata".format(len(headerLines))) 
print("we have {} lines of data".format(len(dataLines)))  

#here we want to seperate the lines in the file into headerLines and dataLines 
+0

你能解释一下你得到的错误吗? –

+0

教授给出了前三行和最后两行,我们只需填写“if”语句,我还在“elif”中添加了缺少的括号,它没有改变任何事情,它只是说句法错误无效,有点胡萝卜指向elif。 –

+0

似乎它是'#',它是用来评论python中的一行的特殊字符.Hash符号后面的所有内容都被认为已被删除。 –

回答

1

你的问题是在你的解析。更改行:

if (len(line) > 0 and (line[0] == #)) : 

if (len(line) > 0 and (line[0] == '#')): 

正在发生的事情是,哈希(#)被视为注释,因此一切都将被忽略后(这就是为什么它是灰色的)。我做了什么来解决这个问题,我把它改成了一个字符串,无论如何它不可避免地修复了脚本的另一个问题。如果line [0]是一段值为#的文本,那么它将被打印为字符串'#',所以如果我们检查它,它会工作得很好。

对于有阅读障碍的人来说,你正在做一件了不起的工作,对你的学习很有帮助。

0

该行最后需要')'。 像这样: elif的(LEN(线)> 0和(行[0] == U)):

另一个问题: 如果(LEN(线)> 0和(行[0] ==' #')):

'#'是一个运算符。就像+/-一样,你不能将'aaa'与+/-进行比较。