for循环不迭代文件

时间:2017-08-19 23:00:23

标签: python linux file loops

我的眼睛应该输入第二个for循环,但它永远不会。为什么是这样?这就像文件是空的但我可以向你保证不是。

def remove_none():

# remove contents of temp.txt
file = open('temp.txt', 'w')
file.truncate()
file.close()    

with open("temp.txt", "a") as temp:
    with open("temp_copy.txt") as temp_copy:

        num_of_lines = 0
        other_IPs = 0

        # count the number of lines in temp_copy.txt
        for _ in temp_copy:
            num_of_lines += 1
        other_IPs = num_of_lines-3
        print "\nThere are {} IP's excluding router and you.\n".format(other_IPs)

        count = 0
        os.system("cat temp_copy.txt")

        **# this is the second for loop**
        for line in temp_copy:
            count =+ 1
            print count
            if count == 1:
                # run this on the first line
                temp.write(line)

            elif count == num_of_lines:
                # run this on the last line 
                # remove the last line
                pass
            else:
                # run this on every other line
                line = line[4:]+"\n"
                temp.write(line)

2 个答案:

答案 0 :(得分:0)

问题是

count =+1

应该是

count +=1

记住这个:

+ =是加法运算符= +意味着变量等于正数所以计数= + 1表示计数等于正数1而计数+ = 1表示计数加1

那应该可以解决问题!

此外,第一个循环读取整个文件,您需要告诉它从头开始。

答案 1 :(得分:0)

第二个循环不会运行,因为第一个循环读取整个文件。换句话说,当第一个循环完成时,文件iterable位于序列的末尾。如果要迭代文件两次,可以使用file.seek(0)重置位置。