我的眼睛应该输入第二个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)
答案 0 :(得分:0)
问题是
count =+1
应该是
count +=1
记住这个:
+ =是加法运算符= +意味着变量等于正数所以计数= + 1表示计数等于正数1而计数+ = 1表示计数加1
那应该可以解决问题!
此外,第一个循环读取整个文件,您需要告诉它从头开始。
答案 1 :(得分:0)
第二个循环不会运行,因为第一个循环读取整个文件。换句话说,当第一个循环完成时,文件iterable位于序列的末尾。如果要迭代文件两次,可以使用file.seek(0)
重置位置。