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: [email protected] [mailto:[email protected]] 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: [email protected] [mailto:[email protected]] 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: [email protected] [mailto:[email protected]] 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. <[email protected]>:
>> 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:[email protected]
>>
>> 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
>> [email protected]
>> http://www.py.cz/mailman/listinfo/python
>>
MJM> _______________________________________________
MJM> Python mailing list
MJM> [email protected]
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> [email protected]
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> [email protected]
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> [email protected]
MJM> http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python