1. 程式人生 > >python處理txt檔案

python處理txt檔案

需求:

給一個txt檔案,經過程式處理後,生成目標txt檔案

例如:

原檔案內容如下:

商戶號|終端號|交易型別|交易子型別|總筆數|總金額|總手續費|清算時間
1201603|38554|04317|00|13|0.31|2.40|2018-01-15
商戶號|終端號|交易型別|交易子型別|寶付訂單號|商戶訂單號|清算日期|訂單狀態|交易金額|手續費|寶付交易號|支付訂單建立時間|商戶退款訂單號|退款訂單建立時間
1201603|38554|04317|00|1574960674|S180115121807148001|2018-01-15|1|0.02|0.80|201801150110001574960674|2018-01-15 12:18:07||
1201603|38554|04317|00|1574960674|S180115121807148001|2018-01-15|1|0.01|0.00|201801150110001574960674|2018-01-15 12:18:07||
1201603|38554|04317|00|1574988830|S180115122645148008|2018-01-15|1|0.01|0.00|201801150110001574988830|2018-01-15 12:26:45||
1201603|38554|04317|00|1574988830|S180115122645148008|2018-01-15|1|0.03|0.80|201801150110001574988830|2018-01-15 12:26:45||
1201603|38554|04317|00|1574992052|S180115122753148009|2018-01-15|1|0.03|0.80|201801150110001574992052|2018-01-15 12:27:54||
1201603|38554|04317|00|1574992052|S180115122753148009|2018-01-15|1|0.02|0.00|201801150110001574992052|2018-01-15 12:27:54||
1201603|38554|04317|00|1574992052|S180115122753148010|2018-01-15|1|10.00|1.00|201801150110001574992053|2018-01-15 12:27:54||
1201603|38554|04317|00|1574992052|S180115122753148011|2018-01-15|1|20.00|0.00|201801150110001574992054|2018-01-15 12:27:54||

處理後的新檔案:

商戶號|終端號|交易型別|交易子型別|總筆數|總金額|總手續費|清算時間
1201603|38554|04317|00|13|0.31|2.40|2018-01-15
商戶號|終端號|交易型別|交易子型別|寶付訂單號|商戶訂單號|清算日期|訂單狀態|交易金額|手續費|寶付交易號|支付訂單建立時間|商戶退款訂單號|退款訂單建立時間|分賬金額
1201603|38554|04317|00|1574960674|S180115121807148001|2018-01-15|1|0.02|0.80|201801150110001574960674|2018-01-15 12:18:07|||0.01
1201603|38554|04317|00|1574988830|S180115122645148008|2018-01-15|1|0.03|0.80|201801150110001574988830|2018-01-15 12:26:45|||0.01
1201603|38554|04317|00|1574992052|S180115122753148009|2018-01-15|1|0.03|0.80|201801150110001574992052|2018-01-15 12:27:54|||0.02
1201603|38554|04317|00|1574992052|S180115122753148010|2018-01-15|1|10.00|1.00|201801150110001574992053|2018-01-15 12:27:54|||0.00
1201603|38554|04317|00|1574992052|S180115122753148011|2018-01-15|1|20.00|0.00|201801150110001574992054|2018-01-15 12:27:54|||0.00

程式如下:

#-*— coding:utf-8 -*-
#處理txt檔案
__author__ = 'zengqiang.wang'

#開啟檔案
file=open('fi_dz_1201603_2018-01-15_new.txt')

#存放檔案前二行
dest1=[]
#存放檔案其餘的行
dest2=[]

#將檔案內容存放到相應的變數中
for f in file:
    f1 = f.split('|')#以|進行字串的分割
    if len(f1) == 8:
        dest1.append(f1)
    else:
        dest2.append(f1)
dest=[]#存放處理後的檔案內容的變數
#處理寶付訂單號成對出現的。
for i in range(len(dest2)):
    if dest2[i][0] == '商戶號':
        dest2[0].append('分賬金額')#對第三行的處理
    else:#對剩下幾行的處理,合併某兩行上午訂單號相同的,然後將手續費為0的追加加到不為0的後面
        dest2[i][13] = ''#處理換行
        for d1 in dest2:
            if d1[5] == dest2[i][5] and d1[9] == '0.00' and dest2[i][9] != '0.00':
                dest2[i].append(d1[8])
                dest.append(dest2[i])




#目標生成檔案,裡面包含處理後的內容
file=open('dest.txt','w')
print dest1
print dest2[0]
print dest

#處理寶付訂單號不成對的。
orderIds1=[]
#把成對的寶付訂單號存放在orderIds1變數中
for j in range(len(dest)):
    orderIds1.append(dest[j][5])
#print orderIds1

dest3=[]#把不成對的行存放在dest3裡面。
for k in range(len(dest2)):
    if dest2[k] == dest2[0]:
        continue
    if dest2[k][5] not in orderIds1:
        dest3.append(dest2[k])
		
#處理list中的字串中包含的換行符\n
for j in range(len(dest3)):
    for i in range(len(dest3[j])):
        dest3[j][i] = dest3[j][i].strip('\n')
for m in range(len(dest3)):
    dest3[m].append('0.00')
    dest.append(dest3[m])
	
	
#遍歷將變數存入檔案
#將前兩行寫入檔案
for d in dest1:
    for i in range(len(d)):
        d[i] = d[i].strip('\n')
        if i < len(d)-1:
            d[i] += '|'
        file.write(d[i])
    file.write('\n')
#將第三行寫入檔案
for i in range(len(dest2[0])):
    dest2[0][i] = dest2[0][i].strip('\n')
    if i < len(dest2[0])-1:
        dest2[0][i] += '|'
    file.write(dest2[0][i])
file.write('\n')

#將其餘幾行寫入檔案
for d in dest:
    for i in range(len(d)):
        if i < len(d)-1:
            d[i] += '|'
        file.write(d[i])
    file.write('\n')


相關推薦

python處理txt檔案的一種情況

在txt文字中,以換行符作為標記分段處理txt檔案中的內容的方法: with open(path, 'r', encoding='utf-8') as f: for line in f: if line!='\n': print(line

python處理txt檔案

需求: 給一個txt檔案,經過程式處理後,生成目標txt檔案 例如: 原檔案內容如下: 商戶號|終端號|交易型別|交易子型別|總筆數|總金額|總手續費|清算時間 1201603|38554|04317|00|13|0.31|2.40|2018-01-15 商戶號|終端號|交

Python 關於txt檔案處理

Python 處理txt檔案 1.TXT讀取: path = '/home/0_1.txt' file1 = open(path) read1 = file1.read() print(read1) 2.將TXT內容轉化為array TXT的大小是24*24,轉化為一維向量1*

python 處理excel檔案txt檔案

處理excel檔案的python庫有很多,如xlsxwriter、xlrd、openpyxl等。由於經常用pandas處理資料,而且pandas讀寫excel更方便,所以主要講pandas是如何操作excel的。也介紹瞭如何分別使用用xlsxwriter和ope

python批量處理txt檔案,為每行資訊追加內容

環境:python3.7。軟體下載自官網,安裝過程參考 廖雪峰的python教程。不過按照其教程安裝,報了api-win-msc-crt-runtime丟失的問題。 後續,我直接到官網下載,以及百度解決問題。具體參考哪個文件,找不到了。 這裡只展示自己寫的簡單指令碼:

Pythontxt檔案中逐行讀取資料

Python從txt檔案中逐行讀取資料   # -*-coding:utf-8-*- import os for line in open("./samples/label_val.txt"): print('line=', line, end = '') #後面

python修改txt檔案中的某一項

在做task中,需要將TXT文字中的某一項註釋修改,但是python對txt文字只有寫入和讀取兩種操作。 我採用的方法是: 1.讀取txt檔案,將每一行資料,加入新建立的list中。 2.在list中修改資料 3.再新建一個txt檔案,按行存入資料。記得新增 ‘/n’ 分行 例項

python 處理CSV檔案

讀取 import csv with open('test.csv','r',encoding='utf8') as csvfile: reader = csv.reader(csvfile) for i in reader: print(i) 寫

Pythontxt檔案變為excel檔案

首選展示一下txt檔案 轉變為excel檔案如下: 具體程式碼如下: txtname = 'baifenbi1.txt' excelname = '2.xlsx' fopen = open(txtname, 'r') lines = fopen.readlines()

python之.txt檔案讀取小結

一.按行讀取.txt檔案。 方法1. 用next函式去讀取行,首先建立reader,每next一下,指標就往下讀取一行,而且要注意,雖然reader用print函式是打不開裡面的內容的,但是在reader內部,csv表格是按行儲存在reader中的。 import csv filename_

pythontxt檔案中讀入資料

現在有如下資料集儲存在txt檔案中,利用python逐行讀取資料到list型別下。 1.658985 4.285136 -3.453687 3.424321 4.838138 -1.151539 -5.379713 -3.362104 0.972564

使用Python處理Excel檔案的一些程式碼示例

筆記:使用Python處理Excel檔案的一些程式碼示例,以下程式碼來自於《Python資料分析基礎》一書,有刪改 #!/usr/bin/env python3 # 匯入讀取Excel檔案的庫,xlrd,其中的 open_workbook 為讀取工作簿 from xlrd import open_wo

Python處理word檔案

python對word檔案進行讀寫和複製 import win32conimport win32com.clientimport os#讀取word檔案def readWoldFile(path): #呼叫系統word功能,可以處理doc和docx檔案 mw=win32com.client.Dispatch

python操作txt檔案中資料教程[1]-使用python讀寫txt檔案

python操作txt檔案中資料教程[1]-使用python讀寫txt檔案 覺得有用的話,歡迎一起討論相互學習~Follow Me 原始txt檔案 程式實現後結果 程式實現 filename = './test/test.txt' contents = [] DNA_sequence

python操作txt檔案中資料教程[2]-python提取txt檔案

python操作txt檔案中資料教程[2]-python提取txt檔案中的行列元素 覺得有用的話,歡迎一起討論相互學習~Follow Me 原始txt檔案 程式實現後結果-將txt中元素提取並儲存在csv中 程式實現 import csv filename = "./test/te

python操作txt檔案中資料教程[3]-python讀取資料夾中所有txt檔案並將資料轉為csv檔案

python操作txt檔案中資料教程[3]-python讀取資料夾中所有txt檔案並將資料轉為csv檔案 覺得有用的話,歡迎一起討論相互學習~Follow Me 參考文獻 python操作txt檔案中資料教程[1]-使用python讀寫txt檔案 python操作txt檔案中資料教程[2]-pyth

Python處理excel檔案

Python處理excel檔案 ​ 這裡只介紹幾種常用的庫。對於2003以前的excel版本,即.xls檔案,只能用xlrd和xlwt庫來處理;對於2003及以後的excel檔案,即.xlsx檔案,需要使用openpyxl庫來處理,這裡著重介紹這三個第三方庫。 ​ 注:Workboo

Python讀取TXT檔案時出現“ufeff“字元

Python讀取TXT檔案時出現“\ufeff“字元 文章目錄 Python讀取TXT檔案時出現“\ufeff“字元 問題描述: 原因: 解決方案:

Python讀取txt檔案的三種方式

文字處理是經常碰到的一個問題,Python的文字讀取有三個方法可以呼叫: read() readaline() readlines() 直接看名字就大概能猜出什麼意思。 第一個函式就是直接把文字內容全部讀取出來 第二個函式是逐行讀取 第三個函式是逐行全部讀取

pythontxt檔案讀資料,然後修改資料,再以矩陣形式儲存在檔案

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # -*- coding: UTF-8 -*- import numpy as np import glob import tensorflow as tf flag=T