如何用空行分隔文本文件

时间:2019-01-28 20:34:55

标签: python

我想用用空行分开的扑克手循环遍历文本文件。 文本文件如下所示:

  

PokerStars扑克手#172075855663:无限注德州扑克($ 0.50 / $ 1.00 USD)-   2017/06/22 0:34:27 CET [2017/06/21 18:34:27 ET]表'Parysatis'   6人座#6是按钮座位1:AndrVik89(筹码$ 114.27)   2:bumpandrun5(筹码112.66美元)座位3:钢制耐克(筹码100美元)   座位4:Johnii141(筹码$ 105.20)座位5:PapaGun5286($ 194.78)   席位6:VexVictor(筹码180.95美元)AndrVik89:小职位   盲注$ 0.50 bumpandrun5:张贴大盲注$ 1    *洞孔卡 交易给Johnii141 [Qd Kd] steelNike:弃牌Johnii141:筹集$ 1.80至$ 2.80 PapaGun5286:弃牌VexVictor:弃牌   AndrVik89:弃牌后碰跑5:弃牌未收回下注($ 1.80)返回   Johnii141 Jo​​hnii141从彩池中收集了$ 2.50 Johnii141:未显示   手    摘要* 总底池$ 2.50 |抽佣$ 0座位1:AndrVik89(小盲注)在翻牌前折叠座位2:bumpandrun5(大盲注)被折叠   翻牌圈3之前:钢制耐克在翻牌圈之前折叠(没有下注)座位4:   Johnii141收集($ 2.50)座位5:PapaGun5286在翻牌前折叠   (没有下注)座位6:VexVictor(按钮)在翻牌圈(没有   下注)

     

PokerStars扑克手#172076017834:无限注德州扑克($ 0.50 / $ 1.00 USD)-   2017/06/22 0:38:49 CET [2017/06/21 18:38:49 ET]表'Parysatis'   6人座5号座位是按钮1:AndrVik89(筹码$ 122.85)   2:Bumpandrun5(筹码141.38美元)席位4:Johnii141(筹码102.20美元)   座位5:PapaGun5286(筹码166.14美元)座位6:VexVictor   (筹码$ 171.45)VexVictor:小盲注$ 0.50 AndrVik89:   发布大盲注$ 1 l xFlake l:    *洞牌 发给Johnii141 [9h Ks] umpandrun5:买入$ 1 Johnii141:弃牌PapaGun5286:募集$ 3.15至$ 4.15 VexVictor:弃牌   AndrVik89:折叠bumpandrun5:调用$ 3.15    FLOP [2h 3d Jd] umpandrun5:下注$ 4.66 PapaGun5286:跟注$ 4.66    转动 [2h 3d Jd] [5h] umpandrun5:下注$ 9.08 PapaGun5286:下注$ 9.08    河牌 [2h 3d Jd 5h] [2s] umpandrun5:支票PapaGun5286:下注$ 10umpandrun5:弃牌($ 10)返回   PapaGun5286从锅中收集了35.42美元PapaGun5286:没有   伸出手    摘要* 总底池$ 37.28 | Rake $ 1.86棋盘[2h 3d Jd 5h 2s]座位1:AndrVik89(大盲注)在翻牌前折叠座位2:bumpandrun5   在River Seat 4上弃牌:Johnii141在翻牌前弃牌(没赌)   座位5:PapaGun5286(按钮)收集($ 35.42)座位6:VexVictor   (小盲注)在翻牌圈前折叠

*总结* 之后-翻牌(没下注),我们有另一手牌。

我想做的是从第一手获得我需要的所有信息,然后转到另一手获得相同的信息。手被空线分开。 然后将其放入数据框。

我已经做了什么:

file = open(r'C:\Users\AdamPer\Desktop\Magisterka\2rece.txt','r')
linia = [i.rstrip('\n') for i in file]

import re

pattern_hand = re.compile(r'#(\d+):')
pattern_sb = re.compile('\$(\d+.\d+)/')
pattern_table = re.compile('(Table)\s\'(\w+)(\')')
pattern_seat = re.compile('Seat\s(\d):')
Hand_id = []
sb = [] 
table = []
nr_of_player = []                        
for i in range(len(linia)):
    matches_hand = pattern_hand.finditer(linia[i])
    for match_hand in matches_hand:
        Hand_id.append(match_hand.group(1))
    matches_sb = pattern_sb.finditer(linia[i])
    for match_sb in matches_sb:
        sb.append(match_sb.group(1))
    matches_table = pattern_table.finditer(linia[i])
    for match_table in matches_table:
        table.append(match_table.group(2))
    matches_nr_of_player = pattern_seat.finditer(linia[i])
    for match_nr_of_player in matches_nr_of_player:
        nr_of_player.append(match_nr_of_player.group(1))

print(Hand_id)
print(sb)
print(table)
print(nr_of_player)

nr_of_player列表不正确。我需要检查一下这些线之间球员占据了多少个席位,并将其存储为数字。 行:“桌子'Parysatis'6人座#6是按钮” 和 行:“ AndrVik89:发布小盲注$ 0.50”

我的目标是获取数据框like this 我有成千上万个这样的文本文件。

0 个答案:

没有答案