[python] JA k bysem udělal následující věc pomocí regulárních výrazů

mtip mtip na atlas.cz
Pátek Leden 15 09:01:03 CET 2010


Ja bych na to sel nejak takto:
def sconv(text, colString=(), delimiter='\t'):
    text = text.split(delimiter)
    for i in xrange(len(text)):
        s = text[i]
        if s in colString:
           text[i] = "'%s'" %s
    return delimiter.join(text)

# pak
print sconv("1    a    c", (0,))


Mozna to neni na jeden radek, ale nemusi se to priste upravovat pri
zmene pocti spoupcu nebo zmene delimiteru. Akorat to nebude fungovat,
kdyz v polich bude obsazen tabulator.
Mirek N.



MJM> Vymyslel sem todle, lae není to asi příliš elegantní
MJM> print
MJM> re.sub(r"([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)\t([^\t]+)","'\g<1>'\t'\g<2>'\t\g<3>\t\g<4>\t'\g<5>'",
MJM> "A	1n2	2	3	b5n2")
MJM> Je. 

MJM> -----Original Message-----
MJM> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of MICHÁLEK Jan Mgr.
MJM> Sent: Friday, January 15, 2010 7:10 AM
MJM> To: Konference PyCZ
MJM> Subject: Re: [python]JA k bysem udělal následující věc pomocí regulárních výrazů

MJM> Abych lepší specifikoval dotaz, řekněme, že bysem měl tab
MJM> delimited tabulku, kde sou čísla a alfanumerické řetězce. A
MJM> potřeboval bych zauvozovkovat všechno, co obsahuje něco jinýho
MJM> než čísla.
MJM> Příklad:
MJM> A	1n2	2	3	b5n2

MJM> A chci:

MJM> 'A'	'1n2'	2	3	'b5n2'

MJM> A nejlíp kdyby šlo zadat, aby sem zauvozvoval konkrétbní
MJM> sloupce, tj, udělat, abysem zauvozovkoval natvrdo 1,2 a 5
MJM> sloupec??
MJM> Díky
MJM> Je.

MJM> -----Original Message-----
MJM> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of MICHÁLEK Jan Mgr.
MJM> Sent: Friday, January 15, 2010 7:03 AM
MJM> To: Konference PyCZ
MJM> Subject: Re: [python]JA k bysem udělal následující věc pomocí regulárních výrazů

MJM> Ještě bych se rád optal, jak udělat, aby to bralo jen ty
MJM> písmenka, před kterejma a za kterejma je \t. Dík 

MJM> -----Original Message-----
MJM> From: python-bounces na py.cz [mailto:python-bounces na py.cz] On Behalf Of Petr Hlávka
MJM> Sent: Thursday, January 14, 2010 12:24 PM
MJM> To: Konference PyCZ
MJM> Subject: Re: [python]JA k bysem udělal následující věc pomocí regulárních výrazů

MJM> Dobrý den,

MJM> mělo by to jít udělat snadno s pomocí "group reference"

MJM> re.sub(r"([a-z])", r"'\1'", table)

MJM> (table je retezec obsahujici tabulku)

MJM>   S pozdravem Petr Hlávka.

MJM> 2010/1/14 MICHÁLEK Jan Mgr. <Michalek.Jan na uhul.cz>:
>> Mam tab delimited tabulku kde jsou čísla a písmenka a potřebuju dát
>> všechny písmenka '[a-z]' do jednoduchejch uvozovek.
>> Takhle to vypadá
>> 1    a    c
>> 2    d    s
>> --
>> a takhle to chci
>>
>> 1    'a'    'c'
>> 2    'd'    's'
>>
>> je na to nějaká finta??
>> Dík
>> Je.
>>
>>
>>
>> Mgr Jan Michálek
>>
>> oddělení GIS
>>
>> útvar ISaT
>>
>> ÚHÚL Brandýs nad Labem
>>
>> tel.: +420 322 319 886
>>
>> email: mailto:michalek.jan na uhul.cz
>>
>> url: http://www.uhul.cz/
>>
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 4769
>> (20100113) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>> _______________________________________________
>> Python mailing list
>> Python na py.cz
>> http://www.py.cz/mailman/listinfo/python
>>
MJM> _______________________________________________
MJM> Python mailing list
MJM> Python na py.cz
MJM> http://www.py.cz/mailman/listinfo/python
 

MJM> __________ Informace od ESET NOD32 Antivirus, verze
MJM> databaze 4769 (20100113) __________

MJM> Tuto zpravu proveril ESET NOD32 Antivirus.

MJM> http://www.eset.cz
 
 

MJM> __________ Informace od ESET NOD32 Antivirus, verze
MJM> databaze 4773 (20100114) __________

MJM> Tuto zpravu proveril ESET NOD32 Antivirus.

MJM> http://www.eset.cz
 
MJM> _______________________________________________
MJM> Python mailing list
MJM> Python na py.cz
MJM> http://www.py.cz/mailman/listinfo/python
 

MJM> __________ Informace od ESET NOD32 Antivirus, verze
MJM> databaze 4773 (20100114) __________

MJM> Tuto zpravu proveril ESET NOD32 Antivirus.

MJM> http://www.eset.cz
 
 

MJM> __________ Informace od ESET NOD32 Antivirus, verze
MJM> databaze 4773 (20100114) __________

MJM> Tuto zpravu proveril ESET NOD32 Antivirus.

MJM> http://www.eset.cz
 
MJM> _______________________________________________
MJM> Python mailing list
MJM> Python na py.cz
MJM> http://www.py.cz/mailman/listinfo/python
 

MJM> __________ Informace od ESET NOD32 Antivirus, verze
MJM> databaze 4773 (20100114) __________

MJM> Tuto zpravu proveril ESET NOD32 Antivirus.

MJM> http://www.eset.cz
 
 

MJM> __________ Informace od ESET NOD32 Antivirus, verze
MJM> databaze 4773 (20100114) __________

MJM> Tuto zpravu proveril ESET NOD32 Antivirus.

MJM> http://www.eset.cz
 
MJM> _______________________________________________
MJM> Python mailing list
MJM> Python na py.cz
MJM> http://www.py.cz/mailman/listinfo/python





Další informace o konferenci Python