【发布时间】:2018-10-04 17:04:10
【问题描述】:
我正在尝试从文件中统计数据并计算平均值、中位数、最小值和最大值。 我能做到的就这么多了。
我苦苦挣扎的地方是,我需要给用户一个选项,将计算出的统计数据保存到一个新文件中。它给了我一个错误,说'str'对象没有属性'write'
有谁知道我如何将“computed_stats”函数写入文件? 非常感谢任何帮助!
这是我的大部分代码的屏幕截图。我没有足够的屏幕空间来包含提示用户输入选择的表格或加载数据的函数。对于这个问题,它们似乎并不重要。
def table():
print("Choose an option:")
print("1. Load data")
print("2. Display computed statistics")
print("3. Save computed statistics")
print("4. Exit")
def load_data(filename):
with open(filename) as f:
for lines in f:
numbers = lines.split()
return(numbers)
def compute_stats(data_list):
minimum = (min(data_list))
maximum = (max(data_list))
mean = (sum(data_list) / (len(data_list)))
data = sorted(data_list)
if (len(data) % 2) == 1:
median = data[len(data) // 2]
else:
median = (data[len(data) // 2] + data[len(data) // 2 - 1]) / 2
return minimum, maximum, mean, median
def print_stats(data_list):
minumum, maximum, mean, median = compute_stats(data_list)
print(minimum)
print(maximum)
print(mean)
print(median)
def save_stats(new_file):
global comp_data
with open(new_file, 'w') as f:
f.close()
def main():
selection = 0
while selection != "4":
table()
selection = input("Choose a selection: ")
print()
if selection == "1":
data_list = input("Enter the name of your file: ")
data_list = load_data(data_list)
data_list = [int(x) for x in data_list]
print("Data read sucessfully \n")
elif selection == "2":
print_stats(data_list)
elif selection == "3":
new_file = input("Enter File Name")
save_stats(new_file)
main()
【问题讨论】:
-
将您的代码显示为文本。屏幕截图是不可接受的,因为它不能被复制并粘贴到编辑器中进行实验等。
-
在 Python-3.x 之外添加一个纯 Python 标签
-
代码图片在这里没用。我怀疑您使用 Paint 编写代码。我们大多数人都使用代码编辑器,这意味着代码可以作为文本使用。请将您的代码以文本形式发布在此处,直接从代码编辑器复制和粘贴,并正确格式化以使其可读(对于 Python,正确缩进)。
-
大家好。对于那个很抱歉。我是该网站的新手,并在上班前匆忙发布了此信息。刚刚把我的代码贴在那里。我正在尝试获取从“Computed_stats”函数计算的统计信息以写入新文件。我觉得我需要从中返回值,但我不确定。在将信息传递给不同的功能时,我真的很挣扎。
标签: python python-3.x function file-writing