Python noob在Windows上使用2.7。我正在用HTML编程制作一个层次结构的树视图。我有一个类似下面输出的文件:
0
  2
    4
      6
        8
        8
0
  2
    4
    4
      6
        8
        8
      6
      6out.txt看起来像这样:
0
2
4
6
8
8
0
2
4
4
4
6
8
8
6
6我的代码:
x = open('out.txt','r')
for current_line in x:
   prev_line = current_line[:-1]
   print "Current: " + current_line
   print "Previous: " + prev_line
   if prev_line > current_line:
       print "Folder"
   elif prev_line == current_line:
       print "Root"
x.close()我遇到的问题是,每次我尝试将prev_line与current_line进行比较时,都得不到所需的输出。我可以做一些像if prev_line == "0": print "Root"这样的事情,但它不会工作,因为它只适用于这种情况。此外,似乎在下一次电流完成之前,正在计算if部分。我从当前代码中获得的结果包括:
Current: 0
Previous: 0
Current: 2
Previous: 2
Current: 4
Previous: 4
Current: 6
Previous: 6
Current: 8
Previous: 8
Current: 8
Previous: 8
Current: 0
Previous: 0
Current: 2
Previous: 2
Current: 4
Previous: 4
Current: 4
Previous: 4
Current: 4
Previous: 4
Current: 6
Previous: 6
Current: 8
Previous: 8
Current: 8
Previous: 8
Current: 6
Previous: 6
Current: 6
Previous:我做错了什么?我该如何解决这个问题?我不知道这是不是一个字符串和整数的比较,但如果是的话,我会觉得自己很傻。我已经尝试过了,但它在检查最后一个"Previous:“时出现了一个错误。
发布于 2012-01-04 10:29:49
您错误地声明了prev_line。如果current_line读取为'0\n‘,则prev_line为'0’。并且prev_line永远不会比current_line更大。尝试将prev_line声明为整行。
prev_line = '0'
for current_line in x: 
    print "Current: " + current_line
    print "Previous: " + prev_line
    if prev_line > current_line:
        print "Folder"
    elif prev_line == current_line:
        print "Root"
    prev_line = current_linehttps://stackoverflow.com/questions/8721040
复制相似问题