gpt4 book ai didi

Python:函数被调用一次后,如果我再次调用它会打印0

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:13 26 4
gpt4 key购买 nike

def data_mining (text_file, start, end):
count = 0
total_value = 0
average = 0
for file_line_number, line in enumerate(text_file):
if (file_line_number % 2) == 0:
value = line[start:end]
value = int(value)
total_value += value
count += 1
return total_value, count


def main ():
#Main program.
text_file = open("93cars.dat.txt", "r")

city_mpg = data_mining(text_file, 52, 54)
highway_mpg = data_mining(text_file, 55, 57)
midrange_price = data_mining(text_file, 42, 44)

print (city_mpg)
print (highway_mpg)
print (midrange_price)

main()

我试图在文本中进行数据挖掘,但是在我调用一次 data_mining 函数后,下次调用它时它将仅返回 0。我尝试通过编写 text_file2 = text_file[:] 来制作 text_file 的副本但它返回了一个错误。

最佳答案

def data_mining (text_file, start, end):
count = 0
total_value = 0
average = 0
for file_line_number, line in enumerate(text_file):
if (file_line_number % 2) == 0:
value = line[start:end]
value = int(value)
total_value += value
count += 1
return total_value, count


def main ():
#Main program.
text_file = open("93cars.dat.txt", "r")
city_mpg = data_mining(text_file, 52, 54)
text_file.seek(0) #reset the file pointer to 0
highway_mpg = data_mining(text_file, 55, 57)
text_file.seek(0) #reset the file pointer to 0
midrange_price = data_mining(text_file, 42, 44)

print (city_mpg)
print (highway_mpg)
print (midrange_price)

main()

基本上,您正在读取整个文件,而不是重置指针所在的位置。关闭文件并重新打开会花费更多精力,或者使用参数 0 调用 seek() 函数。

基本上,文件的读取方式就像您打字时文本文件中的光标一样。现在按住 -> 键,直到到达文件末尾。下次您尝试读取某些内容并且没有将光标放回开头时,它只会读取文件结尾符号并认为它是空的。

seek(0) 告诉文件指针或光标(在我们的示例中)返回到开头。 seek() 采用一个以字节为单位的参数来转到该文件的字节,零为开始。

关于Python:函数被调用一次后,如果我再次调用它会打印0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40112966/

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