关于#python#的问题:grade.txt 文件中存储了学生的学号,Python的成绩,请根据Python成绩填写“是2及格”

grade.txt 文件中存储了学生的学号,姓名,Python的成绩,请根据Python成绩填写“是2及格”。如果Python成绩大于等于60,则填写“及格”;否则填写“不及格”。
请将填写“是否及格”后的数据写入文件“passOrNot.txt”中。

with open('grade.txt', 'r') as f:
    lines = f.readlines()

with open('passOrNot.txt', 'w') as f:
    for line in lines:
        parts = line.strip().split(',')
        name = parts[1]
        score = int(parts[2])
        if score >= 60:
            pass_or_not = '及格'
        else:
            pass_or_not = '不及格'
        f.write(f'{name},{pass_or_not}\n')

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7459644
  • 这篇博客也不错, 你可以看下利用python读取.txt文件中的数据并绘制图形
  • 除此之外, 这篇博客: Python操作txt文件,读取和替换操作中的 2、Python实现对文本内容的替换 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 使用Python打开文件时,不同的打开模式具有不同的效果

      • 使用r模式打开的话,只是对文件内容进行读取,不会改变其内容

      • 使用w模式打开,则会将原来的内容清空/覆盖

    • 因此,如若要在原本内容的基础上进行修改,则可以先用r模式打开文件并进行读取,然后再用w模式打开该文件,将经过修改的内容写入文件

    • 这里给个实例,比如我需要在原本文件的每一行后面添加一些信息

      def write2File(filename, resultSet):
      """
      函数说明:
          将测试结果写入文件
      :param filename:
          要写入的文件
      :param resultSet:
          测试结果集合
      """
      with open(filename, "r", encoding="utf-8") as f_read:
          content = f_read.readlines()
      
      #print(content)
      
      index = 0
      length = len(resultSet)
      
      
      with open(filename, "w", encoding="utf-8") as f_write:
          for i in range(length):
              str = ''
              temp = content[i].strip('\n')
      
              str = temp + ',' + resultSet[i] + '\n'
              index += 1
      
              f_write.write(str)
      
  • 以下回答来自chatgpt:
    with open("grade.txt", "r") as f1, open("passOrNot.txt", "w") as f2:
        for line in f1:  # 遍历原文件每一行
            stu_info = line.strip().split()  # 将每一行信息分离出来
            if int(stu_info[2]) >= 60:  # 判断分数是否大于等于60分
                f2.write(f"{stu_info[0]} {stu_info[1]} 及格\n")  # 写入及格
            else:
                f2.write(f"{stu_info[0]} {stu_info[1]} 不及格\n")  # 写入不及格
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^