#!/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的每個表格