🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
8 messages
8 total messages Started by Michal Wawrzyniuk Fri, 22 Jul 2011 21:10
Konwersja "\t" do char
#28176
Author: Michal Wawrzyniuk
Date: Fri, 22 Jul 2011 21:10
8 lines
910 bytes
Witam!

Ostatnio probowalem przekonwertowac podany parametr string "\t" dwa 
znaki do char jeden znak  bezskutecznie. Moze jakies pomysly

Dzieki wielkie

Michal
Re: Konwersja "\t" do char
#28177
Author: Roman Dobosz
Date: Sat, 23 Jul 2011 09:35
16 lines
1464 bytes
On Fri, 22 Jul 2011 22:10:03 +0100
Michal Wawrzyniuk <mwawrzyn07@gazeta.pl> wrote:

> Witam!
> 
> Ostatnio probowalem przekonwertowac podany parametr string "\t" dwa 
> znaki do char jeden znak  bezskutecznie. Moze jakies pomysly

replace?

parametr.replace("\\t", "\t")

-- 
      -^-  _        coś tam w tle sobie gra, np:
   _ /O)_\//        Synæsthesia - Door To The Other Side
  (_(|__(_(_) grf.  
Re: Konwersja "\t" do char
#28178
Author: Michal Wawrzyniuk
Date: Sat, 23 Jul 2011 11:35
23 lines
1377 bytes
Dzieki!

Ale nie o to mi chodzi
Wytlumacze lepiej

parametr = '\t' (moze to byc dowolny znak tez \n ogolnie delimiter dla 
CSV  \t wartosc wprowadzona przez uzytkownika len = 2)

teraz jak to pezkonwertowac do char '\t' len = 1, ord('\t') = 9
  Wiem mozna to zrobic chocby przez zwykle if czy case ale chodzi mi o 
to czy cos takiego sie da zrobic?

M




W dniu 7/23/2011 10:35 AM, Roman Dobosz pisze:
>
> replace?
>
> parametr.replace("\\t", "\t")
>
Re: Konwersja "\t" do char
#28179
Author: Jordan Szubert
Date: Sat, 23 Jul 2011 16:28
33 lines
1591 bytes
Dnia 23-07-2011 o 13:35:08 Michal Wawrzyniuk <mwawrzyn07@gazeta.pl>  
napisał(a):

> Dzieki!
>
> Ale nie o to mi chodzi
> Wytlumacze lepiej
>
> parametr = '\t' (moze to byc dowolny znak tez \n ogolnie delimiter dla  
> CSV  \t wartosc wprowadzona przez uzytkownika len = 2)
>
> teraz jak to pezkonwertowac do char '\t' len = 1, ord('\t') = 9
>   Wiem mozna to zrobic chocby przez zwykle if czy case ale chodzi mi o  
> to czy cos takiego sie da zrobic?
>
> M
>
>
>
>
> W dniu 7/23/2011 10:35 AM, Roman Dobosz pisze:
>>
>> replace?
>>
>> parametr.replace("\\t", "\t")
>>
>

określ dokładniej co chcesz, podaj więcej przykładów, nie tylko legalnych  
(np. co jak użytkownik poda "dupa")

-- 
Jordan Szubert
Re: Konwersja "\t" do char
#28180
Author: Michal Wawrzyniuk
Date: Sat, 23 Jul 2011 18:57
17 lines
1629 bytes
>>
>
> określ dokładniej co chcesz, podaj więcej przykładów, nie tylko
> legalnych (np. co jak użytkownik poda "dupa")
>

Jak zrobic to inaczej to wiem nie ma problemow. Tylko chodzi mi o 
konwersje znaku 'escape' \t zakodowanego w stringu czyli dwa znaki do 
jedengo zanku char '\t' metoda z substring dziala tylko chodzi mi o 
ogolne rozwiaznie dla jakiegokolwiek znaku escape np. \t, \n, \r


czyli: uzytkownik podaje jeden ze znakow \t, \n, \r

  Teraz jak zmodyfikowac string2 zeby  string1=string2 metoda z replace 
dziala ale w tym przypadku musielibysmy znac ktory to jest znak 
specjalny czy sie nie zrobic jakies ogolnej konwersji z '\\?' ---> '\?'
Re: Konwersja "\t" do char
#28181
Author: Jordan Szubert
Date: Sat, 23 Jul 2011 19:31
61 lines
2896 bytes
Dnia 23-07-2011 o 20:57:51 Michal Wawrzyniuk <mwawrzyn07@gazeta.pl>  
napisał(a):

>>>
>>
>> określ dokładniej co chcesz, podaj więcej przykładów, nie tylko
>> legalnych (np. co jak użytkownik poda "dupa")
>>
>
> Jak zrobic to inaczej to wiem nie ma problemow. Tylko chodzi mi o  
> konwersje znaku 'escape' \t zakodowanego w stringu czyli dwa znaki do  
> jedengo zanku char '\t' metoda z substring dziala tylko chodzi mi o  
> ogolne rozwiaznie dla jakiegokolwiek znaku escape np. \t, \n, \r
>
>
> czyli: uzytkownik podaje jeden ze znakow \t, \n, \r
>
>   Teraz jak zmodyfikowac string2 zeby  string1=string2 metoda z replace  
> dziala ale w tym przypadku musielibysmy znac ktory to jest znak  
> specjalny czy sie nie zrobic jakies ogolnej konwersji z '\\?' ---> '\?'

istnieje funkcja eval, ale to bardzo rzadko jest właściwe rozwiązanie, a i  
tak należałoby ją jakoś opakować...


albo coś w tę stronę:
def UserInputToChar(s:str)->str:
	"""konwertuje ,,opis'' znaku do znaku

	interpretuje znaki specjalne jak Python3, z wyjątkiem \N
	pisane w kliencie news, nie testowane
	"""
	if not (isinstance(s,str) and s):
		raise Exception("input must be non-empty string")
	if s[0]!='\\':
		if len(s)==1:
			return s
		else:
			raise Exception("multiple characters not allowed")
	else:
		spc="\n\t\r\v\f\b\a\\\'\""
		spc={repr(c)[2]:c for c in spc}
		dts='0123456789abcdefABCDEF'
		if len(s)==2 and s[1] in spc:
			return spc[s[1]]
		elif len(s)==4 and s[1]=='x' and set(dts).issuperset(s[2:]):
			# \xhh
			return chr(int(s[2:],16)
		elif len(s) in {2,3,4} and set(dts[:8]).issuperset(s[1:])
			# \ooo \oo \o
			return chr(int(s[1:],8)
		elif len(s)==6 and s[1]=='u' and set(dts).issuperset(s[2:]):
			# \uXXXX
			return chr(int(s[2:],16)
		elif len(s)==10 and s[1]=='U' and set(dts).issuperset(s[2:]):
			# \UXXXXXXXX
			return chr(int(s[2:],16)
	
	raise Exception("unparseable input",s)
-- 
Jordan Szubert
Re: Konwersja "\t" do char
#28183
Author: Rob Wolfe
Date: Sat, 23 Jul 2011 19:56
35 lines
1852 bytes
Michal Wawrzyniuk <mwawrzyn07@gazeta.pl> writes:

>>>
>>
>> określ dokładniej co chcesz, podaj więcej przykładów, nie tylko
>> legalnych (np. co jak użytkownik poda "dupa")
>>
>
> Jak zrobic to inaczej to wiem nie ma problemow. Tylko chodzi mi o
> konwersje znaku 'escape' \t zakodowanego w stringu czyli dwa znaki do
> jedengo zanku char '\t' metoda z substring dziala tylko chodzi mi o
> ogolne rozwiaznie dla jakiegokolwiek znaku escape np. \t, \n, \r
>
>
> czyli: uzytkownik podaje jeden ze znakow \t, \n, \r
>
>  Teraz jak zmodyfikowac string2 zeby  string1=string2 metoda z replace
> dziala ale w tym przypadku musielibysmy znac ktory to jest znak
> specjalny czy sie nie zrobic jakies ogolnej konwersji z '\\?' --->
> \?'

Chyba chodzi Ci o to:

>>> s = r'aaa\tbbb\n'
>>> s
'aaa\\tbbb\\n'
>>> len(s)
10
>>> s2 = s.decode('string-escape')
>>> s2
'aaa\tbbb\n'
>>> len(s2)
8

RW
Re: Konwersja "\t" do char
#28182
Author: Michal Wawrzyniuk
Date: Sat, 23 Jul 2011 21:24
7 lines
1138 bytes
Dzieki Wielkie!


Tez myślałem o eval. Ale skoro nie ma oneline rozwiązania to trudno 
trzeba kodować.

Dobrej nocy :)
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads