• python 处理文件


    好久没写过python了天 一点点查的

    import os
    import re
    from decimal import *
    import math
    '''
    def getfiles():
        filenames=os.listdir(r'F:filePythonvolume')
        print(len(filenames))
    getfiles()
    '''
    name = "F:\filePython\volume" #!!\
    packagenames = os.listdir(r'F:filePythonvolume') #返回值是list类型
    print(len(packagenames)) #得到六个子文件夹
    for package in packagenames:
        #print(package)
        file2_path = package + ".txt"
        f2 = open(file2_path,"w") #文件创建在了本目录下
        filenames = os.path.join(name,package)
        #print(filenames) #得到各个文件夹的绝对路径值
        
        for filename in os.listdir(filenames):
            print(filename) #得到单个文件 只是文件名 开始处理单个文件
            signalname = filename
            filename = os.path.join(filenames,filename)
            f = open(filename,"r",encoding = "utf-8")
            countz = 0
            counts = 0
            numberlist = []
            for line in f:
                #print("line: "+line)
                if line.startswith('#') | line.startswith('@'):
                   countz += 1
                else :
                    counts += 1
                    numberlist.append(line)
                    #print("line: "+line)
                    #print(type(line)) #str
            #print(countz) #第25行开始数字
            #print(counts) #共497
            #print(len(numberlist))
            usenumberlist = []
            for row in numberlist:
                #对每一行进行处理 得到中间的那个数 再存储 判断类型别待会转不成
                usenumber = re.split(r"[ ]+", row)[2] #正则
                #print(usenumber) #str
                #print(type(usenumber))
                usenumberlist.append(usenumber)
            # 得到第二列的数值 存储在list数组
            #开始类型转换 进行精确计算decimal 
            sum = Decimal('0.0')
            for usen in usenumberlist:
                #print("usen: "+usen)
                sum += Decimal(usen)
            #print(sum)
            #计算均值
            average = Decimal('0.0')
            average = sum / Decimal(counts) #接受直接拿整型做参数
            print(average)
            straverage = str(Decimal(average))
            #print(straverage)
            #计算均方差
            sumvariance = Decimal('0.0')
            for usen in usenumberlist:
                #print("usen: "+usen)
                fac1 = Decimal(usen)
                sumvariance += (fac1 - average)*(fac1 - average)
            #print(sumvariance) #未开方前的分母
            fz = sumvariance / Decimal(counts-1) #未开方前的分子
            #计算标准差
            #print(fz.sqrt()) 
            StandardDeviation = fz.sqrt()
            #print(type(StandardDeviation)) #<class 'decimal.Decimal'>
    
            
            #本文件的内容:要写入三个part filename straverage StandardDeviation
            #print(signalname)
            f2.write("%-25s	 %35s	 %30s
    "%(signalname, straverage, str(Decimal(StandardDeviation)))) #左靠齐输出
            
            #f2.write("11")
        
    
        '''
        #都弄好了之后
        #print(package)
        file2_path = package + ".txt"
        f2 = open(file2_path,"w") #文件创建在了本目录下
        f2.write("11")
        '''
        f2.close()
    

    我再说一次我不喜欢现在的代码形式

  • 相关阅读:
    hiho_1081_最短路径1
    hiho_1079_离散化
    hiho_1078_线段树区间修改
    hiho_1069_最近公共祖先3
    【.netcore学习】.netcore添加到 supervisor 守护进程自启动报错
    【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境
    【.NetCore学习】ASP.NET Core EF Core2.0 DB First现有数据库自动生成实体Context
    【vue基础学习】vue.js开发环境搭建
    【vue学习】vue中怎么引用laydate.js日期插件
    【年终总结】个人的2017年年终总结
  • 原文地址:https://www.cnblogs.com/yundong333/p/13961010.html
Copyright © 2020-2023  润新知