String apdorojimas

C
  • 22 Bir '10

Sveiki, noriu paklausti ar yra kokios standartinės python 2 versijoje priemonės eilutės apdorojimui, kur eilutė susideda iš žodžių, lengviau su pvz, sakykim turiu tokią eilutę:

"7.06" 0 1276466528 "" "ak12" "type==SLC5_64 || type==SLC4_64" "" "" "614_000043/res" ""

šią eilutę man reikia suskirstyti žodžiais, kur žodis yra tarp kabučių, arba be kabučių, tada tarpas yra skirtukas. Taigi, ar yra koks python metodas atskirti tokiems žodžiams? ar reikia pačiam pasirašyti kažkokį parserį?

S
  • 22 Bir '10

Įtariu arčiausia, tai ko tau reikia yra CSV formato apdorojimas:

http://docs.python.org/library/csv.html

Štai kas gavosi man:
Kodas:

#!/usr/bin/env python

import csv 
from StringIO import StringIO

teststring = """"7.06" 0 1276466528 "" "ak12" "type==SLC5_64 || type==SLC4_64" "" ""          "614_000043/res" """""

string = StringIO(teststring)
reader = csv.reader(string, delimiter=' ')
for row in reader:
    print(row)

Rezultatas

['7.06', '0', '1276466528', '', 'ak12', 'type==SLC5_64 || type==SLC4_64', '', '', '614_000043/res', '']
C
  • 23 Bir '10

Labai dėkui, kaip tik tai, ko reikia jau buvau pasirašęs savo parserį, bet csv lib'as manau turėtų daug greičiau veikti, o kai reikia apdoroti kelis tekstinius failiukus po kelis gb, tai efektyvumas gana svarbus