Python 从文件读取并给出最小值、最大值和平均值的程序
我正在写一个程序,它有一个函数可以写入文件。然后,另一个函数从文件中读取打印值,然后打印最小值、最大值和平均值。当我试图读取文件时,我得到以下错误Python 从文件读取并给出最小值、最大值和平均值的程序,python,Python,我正在写一个程序,它有一个函数可以写入文件。然后,另一个函数从文件中读取打印值,然后打印最小值、最大值和平均值。当我试图读取文件时,我得到以下错误 Traceback (most recent call last): File
Traceback (most recent call last):
File "A8.py", line 39, in <module>
main()
File "A8.py", line 35, in main
read_output('file_name.txt')
File "A8.py", line 19, in read_output
biggest = min(data)
ValueError: min() arg is an empty sequence
尝试读取和处理以下数据:
with open("test.txt") as f:
content = f.readlines()
data = [float(line.strip()) for line in content]
这一行代码也应该起作用:
data = [float(line.strip()) for line in open("test.txt")]
编辑:对于阅读行的有效方法的一些参考,我建议检查尝试阅读和处理如下数据:
with open("test.txt") as f:
content = f.readlines()
data = [float(line.strip()) for line in content]
这一行代码也应该起作用:
data = [float(line.strip()) for line in open("test.txt")]
编辑:对于阅读行的有效方法的一些参考,我建议检查您已经在文件上迭代了两次,所以列表数据是空的
def read_output(file_name):
f = open('file_name.txt')
data = [float(line.rstrip()) for line in f]
biggest = min(data)
smallest = max(data)
print("Biggest: {}".format(biggest))
print("Smallest: {}".format(smallest))
print("Average: {}".format(sum(data)/len(data)))
在python中读取和写入文件的最佳方式:
with open('file_name.txt', 'r') as my_file:
for line in my_file:
print line
with open('file_name.txt', 'w') as my_file:
my_file.write('ciao')
write_输出中也有一个错误,当按下enter键时,您不能写入换行,因为在读取文件引发错误时会解析换行:
def write_input(file_name):
try:
inputfile = open('file_name.txt','w')
while True:
inp = raw_input("Please enter a number. Press Enter to exit")
if inp == "":
break
inputfile.write(str(inp) + '\n')
except Exception as err:
print(err)
您已经对文件进行了两次迭代,因此列表数据为空
def read_output(file_name):
f = open('file_name.txt')
data = [float(line.rstrip()) for line in f]
biggest = min(data)
smallest = max(data)
print("Biggest: {}".format(biggest))
print("Smallest: {}".format(smallest))
print("Average: {}".format(sum(data)/len(data)))
在python中读取和写入文件的最佳方式:
with open('file_name.txt', 'r') as my_file:
for line in my_file:
print line
with open('file_name.txt', 'w') as my_file:
my_file.write('ciao')
write_输出中也有一个错误,当按下enter键时,您不能写入换行,因为在读取文件引发错误时会解析换行:
def write_input(file_name):
try:
inputfile = open('file_name.txt','w')
while True:
inp = raw_input("Please enter a number. Press Enter to exit")
if inp == "":
break
inputfile.write(str(inp) + '\n')
except Exception as err:
print(err)
首先,要编写您的文件:
from random import randint
with open('/tmp/file', 'w') as f_out:
for n in range(100000):
f_out.write('{}\n'.format(randint(0,1000000)))
然后逐行读取该文件并计算最小值、最大值和平均值:
import sys
m_max=-sys.maxint
m_min=sys.maxint
m_sum=0
with open('/tmp/file') as f_in:
for cnt, line in enumerate(f_in, 1):
n=int(line)
m_max=n if n>m_max else m_max
m_min=n if n<m_min else m_min
m_sum+=n
print 'max: {}\nmin: {}\navg: {}\ncnt: {}'.format(m_max, m_min, m_sum/cnt, cnt)
如果文件足够小,可以通过将整个文件读入内存并使用Python内置程序来实现:
with open('/tmp/file') as f_in:
nums=[int(line) for line in f_in]
print 'max: {}\nmin: {}\navg: {}\ncnt: {}'.format(max(nums), min(nums),
float(sum(nums))/len(nums), len(nums))
首先,要编写您的文件:
from random import randint
with open('/tmp/file', 'w') as f_out:
for n in range(100000):
f_out.write('{}\n'.format(randint(0,1000000)))
然后逐行读取该文件并计算最小值、最大值和平均值:
import sys
m_max=-sys.maxint
m_min=sys.maxint
m_sum=0
with open('/tmp/file') as f_in:
for cnt, line in enumerate(f_in, 1):
n=int(line)
m_max=n if n>m_max else m_max
m_min=n if n<m_min else m_min
m_sum+=n
print 'max: {}\nmin: {}\navg: {}\ncnt: {}'.format(m_max, m_min, m_sum/cnt, cnt)
如果文件足够小,可以通过将整个文件读入内存并使用Python内置程序来实现:
with open('/tmp/file') as f_in:
nums=[int(line) for line in f_in]
print 'max: {}\nmin: {}\navg: {}\ncnt: {}'.format(max(nums), min(nums),
float(sum(nums))/len(nums), len(nums))
欢迎来到SO。这一行中的
数据是什么:最大值=最小值(数据)
?数据是一个列表,它保存文件中的值,以便我可以计算平均最小值和最大值。欢迎使用so。这一行中的data
是什么:max=min(data)
?data
是一个保存文件中的值的列表,以便我可以计算平均最小值和最大值。