现在我有一个文本文件,我使用以下代码输出3次。
def Final_Output():##// Edited
with open('A Class, A.T.I..txt', "a") as file_out:
file_out.write("Full_Name :> " + str(Sur_Name) + ', ' + str(Name) + '\n')
file_out.write("Date: >: " + str(Date) + "\n")
file_out.write("Class: >: " + str(Class) + '\n')
file_out.write("Range >: " + str(Range_Limit) + "\n")
file_out.write("Score :> " + str(N) + '\n')
file_out.write("Score_Percent :> " + str(Score_Percent) + '\n')
Name = "MohKale"
Sur_Name = "MohKale Surname"
Date = "16/9/2015 11:7:52"
Class = "A"
Range_Limit = "10765"
N = "10"
Score_Percent = "0.0"
Final_Output()
然后我创建了一个程序,它连续读取文本文件(直到结束),然后将它们保存到变量中。
a = 0
with open('A Class, A.T.I..txt', "r") as file_out:
for line in file_out:
a = a + 1
Name2 = file_out.readline()
print(Name2)
Sur_name2 = file_out.readline()
print(Sur_name2)
Date2 = file_out.readline()
print(Date2)
Class2 = file_out.readline()
print(Class2)
Range_Limit2 = file_out.readline()
print(Range_Limit2)
N2 = file_out.readline()
print(N2)
Score_Percent2 = file_out.readline()
print(Score_Percent2)
现在技术上程序确实读取了文本文件并保存到变量,但问题是它第一次读取文本文件时由于某种原因跳过第一行,第二次循环它也跳过了第一行但也是第二次,然后第三次循环它读取第二行但跳过第三行,这不断发生跳过下一个读取文件。
任何人都可以理解并解释问题
此外,通过推杆print(line)
它会打印缺失的行,但这太随机了,无论如何都要阻止这样的事件
答案 0 :(得分:0)
问题是你的for循环正在消耗文件中的某些行,而与其他.readline()调用无关。而不是做
for line in file_out:
您需要执行类似
的操作try:
while True:
a += 1
Name2 = next(file_out)
print(Name2)
# ...
Score_Percent2 = next(file_out)
print(Score_Percent2)
except StopIteration:
print("Done!")
答案 1 :(得分:0)
问题似乎是你正在使用for循环并迭代这些行,只使用一个:)
我建议您删除for循环并执行file_out.readline()
的
with open('A Class, A.T.I..txt', "r") as file_out:
a = a + 1
Name2 = file_out.readline()
print(Name2)
Sur_name2 = file_out.readline()
print(Sur_name2)
Date2 = file_out.readline()
print(Date2)
Class2 = file_out.readline()
print(Class2)
Range_Limit2 = file_out.readline()
print(Range_Limit2)
N2 = file_out.readline()
print(N2)
Score_Percent2 = file_out.readline()
print(Score_Percent2)