For循环读取Python中的多个.csv文件

For循环读取Python中的多个.csv文件,python,for-loop,standard-deviation,Python,For Loop,Standard Deviation,我开始使用Python,这里有以下问题 计数+=1和其他几行的缩进错误 不扫描目录中的所有.csv文件。当我运行这个脚本时,它只在第一列显示一个.csv文件的输出,而不是多个.csv文件的输出。我使用的for循环命令一定有问题 我需要取文件中每行的标准偏差,取每个文件中所有行的标准偏差的平均值 #!/usr/bin/env python import os print "Filename, Min, Max, Average, Mean of Std" for file in os.list

我开始使用Python,这里有以下问题

  • 计数+=1和其他几行的缩进错误

  • 不扫描目录中的所有.csv文件。当我运行这个脚本时,它只在第一列显示一个.csv文件的输出,而不是多个.csv文件的输出。我使用的for循环命令一定有问题

  • 我需要取文件中每行的标准偏差,取每个文件中所有行的标准偏差的平均值

    #!/usr/bin/env python
    
    import os
    
    print "Filename, Min, Max, Average, Mean of Std"
    for file in os.listdir("."):
        if not file.endswith(".csv"):
                continue    
        csv = open(file)    
        sum = 0
        diff = 0
        std = 0
        sumstd = 0
        count = 0
        min = 0
        max = 0
    
        for line in csv.readlines():
            x = line.split(",")
            time  = x[0]
            value = float(x[1])
            sum  += value       
            if value > max:
                max = value
    
            if 0 < value < min:
                min = value 
                count += 1
            avg = sum / count   
    
        import math
                count +=1
                diff += (value - avg)**2
                std = math.sqrt (diff / (count+1)-1)
                sumstd += std
                meanstd = sumstd/count
    
    
    print file + "," + str(min) + "," + str(max) + "," + str(avg) +  "," + str(meanstd)    
    
    #/usr/bin/env python
    导入操作系统
    打印“文件名、最小值、最大值、平均值、标准平均值”
    对于os.listdir(“.”)中的文件:
    如果不是文件.endswith(“.csv”):
    继续
    csv=打开(文件)
    总和=0
    差异=0
    标准=0
    sumstd=0
    计数=0
    最小值=0
    最大值=0
    对于csv.readlines()中的行:
    x=行分割(“,”)
    时间=x[0]
    值=浮动(x[1])
    总和+=值
    如果值>最大值:
    最大值=最大值
    如果0<值<最小值:
    最小值=值
    计数+=1
    平均值=总和/计数
    输入数学
    计数+=1
    差值+=(值-平均值)**2
    标准=数学sqrt(差异/(计数+1)-1)
    sumstd+=std
    平均标准=总和标准/计数
    打印文件“+”、“+str(最小值)+”、“+str(最大值)+”、“+str(平均值)+”、“+str(平均值))
    

  • 如果您的问题格式不正确,您可能会在csv.readlines()中的行中有一个从
    开始的额外空间:
    。额外的空间将解释缩进错误。至于其他方面,您需要修改您的格式,以便我们提供帮助。Python依赖于空格,所以请确保它保持完整。

    如果您的问题格式不正确,您可能会在csv.readlines()中的行中有一个从
    开始的额外空格:
    。额外的空间将解释缩进错误。至于其他方面,您需要修改您的格式,以便我们提供帮助。Python依赖于空格,因此请确保它保持完整。

    您使用了
    sum
    作为变量名,但这将隐藏内置的
    sum
    函数。自然不鼓励隐藏内置组件

  • 缩进在Python中很重要。行
    import math
    的缩进程度仅与csv.readlines()中的行
    缩进程度相同:
    ,因此
    for
    循环的主体以前一行结束。建议导入的位置在脚本的开头,就像您使用
    import os
    所做的那样

  • 你有:

    if file.endswith(".csv"):
        continue    
    
    因此,它将跳过名称以“.csv”结尾的文件。你不是说:

    if not file.endswith(".csv"):
        continue    
    
    请注意,这是区分大小写的

    顺便说一下,建议使用
    CSV
    模块读取CSV文件


  • 您使用了
    sum
    作为变量名,但这将隐藏内置的
    sum
    函数。自然不鼓励隐藏内置组件

  • 缩进在Python中很重要。行
    import math
    的缩进程度仅与csv.readlines()中的行
    缩进程度相同:
    ,因此
    for
    循环的主体以前一行结束。建议导入的位置在脚本的开头,就像您使用
    import os
    所做的那样

  • 你有:

    if file.endswith(".csv"):
        continue    
    
    因此,它将跳过名称以“.csv”结尾的文件。你不是说:

    if not file.endswith(".csv"):
        continue    
    
    请注意,这是区分大小写的

    顺便说一下,建议使用
    CSV
    模块读取CSV文件


  • 我做了改变。非常感谢。你知道为什么我在计算标准偏差的平均值时,计数+=1总是出错吗?我做了那个改变。非常感谢。你知道为什么我在计算标准偏差的平均值时,计数+=1会出现错误吗?