打开csv文件并编写

时间:2020-01-21 16:56:29

标签: python file csv

请帮助我 我的代码有什么问题? 我的代码写名字,平均(等级)输出

import csv
from statistics import mean
with open('C:/Users/sina/Desktop/python pt/jalase19.csv' , 'r') as fo:
reader = csv.reader(fo)
for row in reader :
    name = row[0]
    grades = list()
    for grade in row[1:]:
        grades.append(float(grade))
        with open('C:/Users/sina/Desktop/python pt/jalase20.csv' , 'w') as fw:
            fw.write("name , mean(grades)\n")

2 个答案:

答案 0 :(得分:1)

在“ with”语句之后您没有缩进

here所述,您必须在“ with”语句之后缩进

您的代码应如下所示:

import csv
from statistics import mean
with open('C:/Users/sina/Desktop/python pt/jalase19.csv' , 'r') as fo:
    reader = csv.reader(fo)
    for row in reader :
        name = row[0]
        grades = list()
        for grade in row[1:]:
            grades.append(float(grade))
            with open('C:/Users/sina/Desktop/python pt/jalase20.csv' , 'w') as fw:
                fw.write("name , mean(grades)\n")

我还认为您是指 fw 而不是 f2

答案 1 :(得分:0)

打开文件时,您缺少缩进​​。看到错误如何使您指向第4行?当使用context manager打开文件时,以及任何时候使用控制语句(如果是,则等),都必须缩进下一行。

import csv
from statistics import mean

with open('C:/Users/sina/Desktop/python pt/jalase19.csv', 'r') as fo:
    reader = csv.reader(fo)
    for row in reader:
        name = row[0]
        grades = list()
        for grade in row[1:]:
            grades.append(float(grade))
        with open('C:/Users/sina/Desktop/python pt/jalase20.csv' , 'w') as f2:
            f2.write("name , mean(grades)\n")