[python] 處理txt的數據,導出到Excel


 
#!/usr/bin/env python3
#-*- coding:utf-8 -*-

#安裝好環境 pandas庫,和openpyxl
import pandas as pd 
import re 
from openpyxl import Workbook

txt_path ='H:\\Python\\txt_process\\in.txt'  #源文檔的文件路徑
txt1_path ='H:\\Python\\txt_process\\out.txt' #數據基本處理之後生成txt文檔路徑

Del_array = ['{', '}', '//']
Aim_symbol = ''

Split_flag =','#以此符號分割每一行的文本
#替換Del_array中的內容爲Aim_symbol
#para@--in_file_path----輸入txt文檔位置
#       out_file_path---替換之後輸出的txt文檔位置
#       del_array---源文本
#       _aim_symbol-替換成爲的文本
def replace_symbol(in_file_path,out_file_path,del_array,_aim_symbol):
    infile = open(in_file_path)
    outfile = open(out_file_path, 'w') #在out_file_path新建一個文件
    outfile = open(out_file_path, 'r+') #打開此文件可寫權限
    lenth = len(del_array)
    for line in infile.readlines():
        demo = line
        x = 0
        while x < len(del_array):
            demo = demo.replace(del_array[x], _aim_symbol) #循環替換del_array數組中的字符
            x = x + 1
        outfile.write(demo)#將替換後的字符串寫入out_file
    infile.close()
    outfile.close() #類似於保存
#導出txt到Excel的每一列,以,爲分割符
def to_excel(input_file, device_symbol):
    book = Workbook()
    sheet = book.active
    sheet.title = 'First' #給Excel標籤命名爲Fisrt
    #book.create_sheet(title = 'sheet2',index = 1)  #新建一個sheet名爲sheet2,在二號位
    Raw = 0
    Col = 0
    f = open(input_file)
    lines = f.readlines() #讀txt文檔所有的數據
    for line in lines:
        value_count = len(line.split(device_symbol))
        for Col in range(0, value_count):
            sheet.cell(Raw+1, Col+1).value = line.split(device_symbol)[Col]#寫入Excel每格數據,此數據以split_flag分割。
            Col = Col + 1
        Col = 0
        Raw = Raw+1
    book.save('sample.xlsx')#保存爲sample文檔
    f.close()
if __name__ == "__main__":
    replace_symbol(txt_path, txt1_path, Del_array, Aim_symbol )#處理原文本,生成一個匹配excel輸入的文本
    to_excel(txt1_path, Split_flag ) #將生成的文本以,分割;填入excel的每個表格

 

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