Python提取無後綴名的文本文件中的有效數據,生成散點圖,並將有效數據保存到excel中

目錄

 

一、數據分析

二、方法分析


一、數據分析

也不知道同事的這種數據是什麼玩意生成的數據(剛進入職場)反正主管就讓我提取數據,生成散點圖,然後保存爲excel文件(開幹就完事,臉上笑嘻嘻,心裏mmp)

文本數據預覽如下所示:

無格式的文本文件數據

這種文件中“【】”中括號框住的數據爲有效數據(紅色框框),一個文件中有四組這樣的數據,其他爲無效數據,需要過濾。

二、方法分析

  1. 批量讀取數據
  2. 判斷是否是有效數據,根據有效數據第一個字符'['
  3. 對有效數據進行處理,並且存在一個list中
  4. 將list中的數據保存到excel中(一個文本數據中的四個有效數據要存在同一個excel文件中)
  5. 生成散點圖

下面附上Python代碼實現

import matplotlib.pylab as plt
import os
from xlutils.copy import copy
import xlrd
import xlwt
path = "C:\\Users\\Administrator\\Desktop\\數據\\"
for a,b,filenames in os.walk(path):
    for i in filenames:
        file = open(path + i)
        num = 0
        p = -1
        while True:
            q = 0
            tmp = []
            lines = file.readline()
            if not lines:
                break
                
            #提取有效數據
            if lines[0] == '[':
                linesdata = lines.replace('\n', '')
                linesdata = linesdata[1:-2]
                linesdata = linesdata.split(',')

                p = p + 1
                for j in linesdata:
                    #上述提取中會使有效數據中的']'變成'',所以也要過濾掉
                    if j == '':
                        break
                    else:
                        tmp.append(int(j))
                #將有效數據存在同一個Excel中
                if os.path.exists(i + '.xls'):
                    old_workbook = xlrd.open_workbook(i + '.xls')
                    new_workbook = copy(old_workbook)
                    new_worksheet = new_workbook.get_sheet(0)
                    q = 0
                    for data in tmp:
                        new_worksheet.write(q,p,data)
                        q = q + 1
                    new_workbook.save(i + '.xls')
                else:
                    workbook = xlwt.Workbook()
                    sheet1 = workbook.add_sheet(u'sheet1',cell_overwrite_ok=True)
                    for data in tmp:
                        sheet1.write(q, p, data)
                        q = q + 1
                    workbook.save(i + '.xls')
                #matplotlib畫散點圖
                x = [m for m in range(len(tmp))]
                fig = plt.figure()
                plt.scatter(x,tmp)
                plt.savefig(i + '_' +str(p) +'.jpg')
                plt.close(fig)

附上一個無格式的文本文件數據處理完之後生成的文件(包括一個excel文件、四個散點圖)

生成文件

 Python新手,大佬勿噴

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章