【问题标题】:Reading input files and writing into output files - Python读取输入文件并写入输出文件 - Python
【发布时间】:2018-08-07 10:34:32
【问题描述】:

我有一个包含以下信息的输入文件 (input.txt):

  • 学生人数(第一行)
  • 测试分数数(第二行)
  • 学生姓名和分数列表

所以文本文件看起来像这样

4
5

Jane Doe,80,75,90,100,95,68
Sara Jones,65,80,72,90,75,80
Bill Smith,50,70,90,70,55,90
John Foles,95,90,85,80,88

我正在尝试创建一个 python 程序来读取这些信息,并将某些值(班级平均分、学生姓名、学生分数等)输出到不同的文件 (output.txt) 中。

我一直在努力,但我永远无法让我的程序完成我需要的一切。例如,我只能输出班级平均分,或者只输出一个学生的分数。我不知道如何输出多个函数。

我真的需要一些帮助。

【问题讨论】:

  • 欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 on topichow to ask 在这里申请。 StackOverflow 不是设计、编码、研究或教程服务。
  • 你能给我们一些你的代码,并解释你想解决的问题。这篇文章太大了,如果没有更多信息,无法回答!
  • 第 1 行和第 2 行中的 4 和 5 是什么?您能否更具体地说明您的问题陈述?
  • 这个想法是可以更改 input.txt 文件。第一个喜欢总是指学生的数量。在这种情况下,使用了 4 名学生。第二个like是与每个学生相关的考试成绩的数量。我的例子是每个学生 5 个考试成绩。
  • 我知道我的问题不是很清楚,对此感到抱歉。真的,我的问题是我可以理解这个问题的每一部分,但我不知道如何将它们结合起来。我了解如何计算平均分,我了解如何读取外部输入文件,我了解如何写入外部输出文件。我不明白的是如何将它们结合起来。

标签: python input output


【解决方案1】:

您将要为此使用Pandas(另请参阅Pandas Manual)。

首先,将以下内容复制到剪贴板:

Jane Doe,80,75,90,100,95,68
Sara Jones,65,80,72,90,75,80
Bill Smith,50,70,90,70,55,90
John Foles,95,90,85,80,88

接下来,运行以下脚本:

#%% Load Your Data
import pandas as pd
df = pd.read_clipboard(sep = ',')

# YOU WILL HAVE TO LOAD YOUR ACTUAL DATA AS FOLLOWS:
# file_path = 'path/to/your/file.txt'
# df = pd.read_csv() 

number_of_students = df.shape[0]
number_of_tests = df.shape[1] -1  # This is the number of columns you have
score_names = ['score' + str(number+1) for number in range(number_of_tests)]
df.columns = ['student'] + score_names # Prepares the column names
df.set_index('student',inplace=True) # Makes the student names the index

#%% Calculate Maximum, Minimum and Average Class Score per test    
score_summaries = df.describe()

#%% Calulate the average score for all students across all tests
average_exam_score = df.mean().mean()

#%% A single students' score
df.loc['Sara Jones']

该脚本将计算您的几个请求。它不做的一件事是加载您的文件(您必须删除包含学生数量和考试成绩的行,但不用担心,它是根据分数数据本身重新计算的)。我在 cmets 中包含了有关如何执行此操作的提示,并留给您实施。

我鼓励您仔细阅读并探索删除某些线条或更改其他线条会做什么。

最后,我代表 SO 社区说欢迎!我知道您的起步似乎很艰难(所有反对票等等),但不要让这让您灰心。通读How to ask a good question,回来,帮助我们一起学习!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    相关资源
    最近更新 更多