gpt4 book ai didi

python - 为什么通过 for 循环第一次返回正确的计数值?

转载 作者:太空宇宙 更新时间:2023-11-04 09:14:32 25 4
gpt4 key购买 nike

在下面的 for 循环中,我试图理解为什么 count 的正确值只在第一次循环运行时返回。

我正在创建一个解析程序来查找文本文件中的某些字符串并对它们进行计数。但是,我在一个地方遇到了一些麻烦。

def callbrowse():
filename = tkFileDialog.askopenfilename(filetypes = (("Text files", "*.txt"),("HTML files", ".html;*.htm"),("All files", "*.*")))
print filename
try:
global filex
global writefile
filex = open(filename, 'r')
print "Success!!"
print filename
except:
print "Failed to open file"

######This returns the correct count only the first time it is run. The next time it ######returns 0. If the browse button is clicked again, then this function returns the ######correct count again.
def count_errors(error_name):
count = 0
for line in filex:
if error_name == "CPU > 79%":
stringparse = "Utilization is above"
elif error_name == "Stuck touchscreen":
stringparse = "Stuck touchscreen"
if re.match("(.*)" + "Utilization is above" + "(.*)",line):
count = count + 1
return count

感谢您的帮助。我似乎无法让它正常工作。

最佳答案

该方法仅在第一次有效,因为文件是通过末尾传递的。如果您再次调用该方法,则不再有行。您可以通过在 for 循环之前调用 filex.seek(0) 来重置文件位置。

关于python - 为什么通过 for 循环第一次返回正确的计数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11209994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com