使用python将txt数据导到excel及计算(一)

  1. 准备数据,这里用了一份top导出的txt文件
  2. 安装pycharm,python3(安装xlrd、xlwt、xlutils、openpyxl、sys)
  3. 在pycarm新建项目,新建一个py文件
  4. `
# coding=utf-8
#from __future__ import print_function #python2 可能需要这个
import time
import sys
sys.path.extend(['D:\\ProgramFiles\\python3\\Lib\\site-packages'])#解决在命令行运行找不到模块
import xlrd
import xlwt
import xlutils.copy
from openpyxl import Workbook,load_workbook
  1. 打开excel新建一个sheet页
book_name_xlsx = './top.xlsx'  #文件路径
wb = Workbook()
wb.save(book_name_xlsx)
#打开Excel
wb=load_workbook(book_name_xlsx)
sheetming =  time.strftime('%Y%m%d%H%M%S')#sheet页名
#创建工作簿,导入的新数据会存在当前excel文件下新建sheet页
sheet=wb.create_sheet(sheetming)
  1. 将txt的数据导入到excel的sheet中,本次使用的数据大概如下
    使用python将txt数据导到excel及计算(一)_第1张图片
aa=[]
f = open('./top.txt')	#导入的txt文本路径
for line in f.readlines():
    data = line.split('\n\t')
    for str1 in data:
        sub_str = str1.split(' ')	#每个数据间是按什么划分的,这里用空格符
        aa.append(sub_str)
        
for i in range(len(aa)):
    sheet.append(aa[i])
        #保存文件
    wb.save(book_name_xlsx)
    
print("写入数据成功!")
  1. 选择要使用的数据

wb = load_workbook ('./top.xlsx')
ws = wb[sheetming]
a = ws.max_row
v=[]
z=[]
b=[]
i=0
while i < a:
    i = i+1
    n = ws.cell (i,17).value #第17列,即res
    m = n.strip('M') #去掉字母
    Y = float(m)
    b.insert(i, Y)
    p = ws.cell (i,21).value  #第20列,即cpu
    o = float(p)
    v.insert(i, o)
    z = list(v)

  1. 使用计算公式
def choose(s):
    sum = 0
    all = 0
    maxnum = max(s)
    for i in s:
        sum = sum + 1 #元素个数
        all = all + i
    average = all / sum
    print(str("最大值{0},平均值{1}").format(maxnum, average))
  1. 调用函数获取计算结果
def main_res():  #计算res的最大值和平均值
    s = b
    print("res",end='')
    choose(s)
def main_cpu():   #计算CPU的最大值和平均值
    s = z
    print("CPU",end='')
    choose(s)

main_res()
main_cpu()

  1. 在pycharm的运行结果如下:
    在这里插入图片描述
    #记录学习使用,第二部分为在dos命令窗口运行的记录

你可能感兴趣的:(python自动化,excel,python,pycharm)