已完成如下 有更好方法嗎
layst = [2,6,13,21,28,39,50,61,72,83,94,105,116,127,134,135,136,143,150,157,164,
175,182]
laylg = [6,13,21,28,39,50,61,72,83,94,105,116,127,134,135,136,143,150,157,164,17
5,182,201]
clast = [2,13,17,21,28,35,42,49,60,61,76,87,94,101,106]
clalg = [13,17,21,28,35,42,49,60,61,76,87,94,101,106,201]
eb =oe.readlines()
blay = []
bfin = []
clay = []
cfin = []
for i in range(len(eb)):
if eb[i].startswith("B"):
for k , l in zip(layst,laylg):
try:
blay.append(int(eb[i][k-1:l-1]))
except:
blay.append(eb[i][k-1:l-1])
ff = blay.copy()
bfin.append(ff)
blay.clear()
elif eb[i].startswith("C"):
for m , n in zip(clast,clalg):
try:
clay.append(int(eb[i][m-1:n-1]))
except:
clay.append(eb[i][m-1:n-1])
ffc = clay.copy()
cfin.append(ffc)
clay.clear()
rounders (望仔) 看板: Python
標題: [問題] 處理文件檔案txt->excel
時間: Tue May 19 21:36:32 2020
剛開始學Python,現行目標是想朝向自動化電腦操作
現在要將無分隔符號的文字檔
依每行開始位置及長度拆分為不同欄位在轉到Excel檔
今天用seed和readline()試不出來
還是要用pandas做得到呢?
文字檔如
aaa100bb633777555
bbb233bb777666555
開始1 4 7 9 12
長度3 3 2 3 6
希望自動轉成excel
人名 金額 班級 積分 累計積分
aaa 100 bb 633 777555
bbb 233 bb 777 666555
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.189.27 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1589895394.A.3F7.html
推 ctr1: 看你全型的英文豆頁很痛05/19 22:20
→ OrzOGC: 先把英數都用半型再說05/19 22:41
推 TitanEric: regex05/19 23:15
推 moodoa3583: 如果每一條字串開始切的起點和長度都相同,那用[:]切05/20 00:30
→ moodoa3583: 應該就可以了,切完後用with open開一個檔存入就好05/20 00:30
推 davidwales: 我覺得用awk 或是sed會簡單很多05/20 10:09
推 TitanEric: 樓上也是好方法05/20 10:38
※ 編輯: rounders (220.133.189.27 臺灣), 05/20/2020 19:44:51
※ 編輯: rounders (220.133.189.27 臺灣), 05/25/2020 23:23:39
※ 編輯: rounders (220.133.189.27 臺灣), 05/25/2020 23:34:23
※ 編輯: rounders (39.12.165.12 臺灣), 05/29/2020 17:51:00