Python教程

python读csv文件写txt文件

本文主要是介绍python读csv文件写txt文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# -*- coding:UTF-8 -*-
import os
import io
import os.path
import shutil
import csv
import numpy as np

def writefile_title(path,reportdate):
    reportfile = path + '\\' + reportdate
    file=open(reportfile,'w')


def findfile(path_report,summary):
    i=0
    file_dir=[]
    for root, dirs, files in os.walk(path_report):
        for file_name in files:
            if summary in file_name:
                result=os.path.join(root, file_name).replace('\\', '/')
                i += 1
                file_dir.append(result)
    print(file_dir)
    return file_dir

def writefile_content(file_dir,reportdate):
    l = len(file_dir)
    reportfile = path + '/' + reportdate
    #f_2 = io.open(str(reportfile), "w")
    lable=[]
    total_date=[]
    cpu_max=[]
    disk_max=[]
    Memory_max=[]
    Network_max=[]

    for i in range(0,l):
          cpu_date = []
          disk_date=[]
          Memory_date=[]
          Network_date=[]

          file=file_dir[i]
          array_1 = file.split('/')
          lable.append(array_1)
          l2=len(lable)
          lable_name=[]
          for k in range(0,l2):
              h=lable[k]
              lable_name.append(h[-2])

          with open(file,'rt') as csvfile:
              reader = csv.reader(csvfile)
              rows_cpu = [row[1] for row in reader]
          with open(file,'rt') as csvfile:
              reader = csv.reader(csvfile)
              rows_disk=[row[2] for row in reader]
          with open(file,'rt') as csvfile:
              reader = csv.reader(csvfile)
              rows_Memory=[row[3] for row in reader]
          with open(file,'rt') as csvfile:
              reader = csv.reader(csvfile)
              rows_Network=[row[4] for row in reader]

          rows_cpu=rows_cpu[1:]
          l_cpu = len(rows_cpu)
          temp_cpu=float(0)

          rows_disk = rows_disk[1:]
          temp_disk = float(0)

          rows_Memory = rows_Memory[1:]
          temp_Memory = float(0)

          rows_Network = rows_Network[1:]
          temp_Network = float(0)


          for i in range(0,l_cpu):
                date_cpu_str=rows_cpu[i]
                date_cpu_int=float(date_cpu_str)
                cpu_date.append(date_cpu_int)

                date_disk_str = rows_disk[i]
                date_disk_int = float(date_disk_str)
                disk_date.append(date_disk_int)

                date_Memory_str = rows_Memory[i]
                date_Memory_int = float(date_Memory_str)
                Memory_date.append(date_Memory_int)

                date_Network_str = rows_Network[i]
                date_Network_int = float(date_Network_str)
                Network_date.append(date_Network_int)

                if cpu_date[i]>=temp_cpu:
                    temp_cpu=cpu_date[i]
                else:
                    temp_cpu=temp_cpu

                if disk_date[i] <= temp_disk:
                    temp_disk = disk_date[i]
                else:
                    temp_disk = temp_disk

                if Memory_date[i]>=temp_Memory:
                    temp_Memory=Memory_date[i]
                else:
                    temp_Memory=temp_Memory

                if Network_date[i]>=temp_Network:
                    temp_Network=Network_date[i]
                else:
                    temp_Network=temp_Network

          cpu_max.append(temp_cpu)
          disk_max.append(temp_disk)
          Memory_max.append(temp_Memory)
          Network_max.append(temp_Network)

    # print(cpu_max)
    # print(disk_max)
    # print(Memory_max)
    # print(Network_max)
    # print(lable)

    total_date.append(lable_name)
    total_date.append(cpu_max)
    total_date.append(disk_max)
    total_date.append(Memory_max)
    total_date.append(Network_max)
    print(total_date)
    t=''
    total_date = np.array(total_date)
    row = total_date.shape[0]
    col = total_date.shape[1]
    with open(reportfile, 'w') as q:
        q.write('Lable,CPU,Disks I/O,Memory,Network I/O\n')
        for i in range(0,col):
            for j in range(0,row):
                t = t + str(total_date[j][i]) + ','
            q.write(t[0:len(t)-1])
            q.write('\n')
            t = ''


if __name__ == '__main__':
      summary='PerfMon-Metrics-Collector.csv'
      reportdate='reportdate.txt'
      path_report=r'D:\WorkSpace\apache-jmeter-3.1\TestReport'
      path=r'D:\WorkSpace\apache-jmeter-3.1\TestReport'
      old_file=path+'\\'+summary
      writefile_title(path, reportdate)
      file_dir=findfile(path_report, summary)
      writefile_content(file_dir, reportdate)
这篇关于python读csv文件写txt文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!