Path: csiph.com!usenet.pasdenom.info!aioe.org!news.stack.nl!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'encoding': 0.05; 'escape': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'width': 0.09; 'kurt': 0.12; 'aligned.': 0.16; 'encoding.': 0.16; 'pythonic': 0.16; 'received:80.91.229.3': 0.16; 'received:dip0.t-ipconnect.de': 0.16; 'received:plane.gmane.org': 0.16; 'received:t-ipconnect.de': 0.16; 'thursday,': 0.16; 'do,': 0.16; 'wrote:': 0.18; 'variable': 0.18; 'file,': 0.19; 'command': 0.22; '>>>': 0.22; 'print': 0.22; 'header:User-Agent:1': 0.23; 'unicode': 0.24; 'header:X-Complaints-To:1': 0.27; 'actual': 0.34; "i'd": 0.34; 'prepare': 0.35; 'there': 0.35; 'false': 0.36; 'should': 0.36; 'list': 0.37; 'skip:[ 10': 0.38; 'to:addr:python- list': 0.38; 'to:addr:python.org': 0.39; 'either': 0.39; 'received:org': 0.40; 'how': 0.40; 'skip:u 10': 0.60; 'life,': 0.60; 'worry': 0.60; 'august': 0.61; 'show': 0.63; 'information': 0.63; 'real': 0.63; 'life': 0.66; '2013': 0.98 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Peter Otten <__peter__@web.de> Subject: Re: right adjusted strings containing umlauts Date: Thu, 08 Aug 2013 17:44:26 +0200 Organization: None References: <9781df99-f9c8-4217-aa67-7a714b7f2ebe@googlegroups.com> <5203B841.4060304@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8Bit X-Gmane-NNTP-Posting-Host: p5084a87c.dip0.t-ipconnect.de User-Agent: KNode/4.7.3 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 42 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1375976674 news.xs4all.nl 16006 [2001:888:2000:d::a6]:58861 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:52204 Kurt Mueller wrote: > Am 08.08.2013 16:43, schrieb jfharden@gmail.com: >> On Thursday, 8 August 2013 15:23:46 UTC+1, Kurt Mueller wrote: >>> I'd like to print strings right adjusted. >>> print( '>{0:>3}<'.format( 'ä' ) ) >> >> Make both strings unicode >> print( u'>{0:>3}<'.format( u'ä' ) ) >> Why not use rjust for it though? >> u'ä'.rjust(3) > > In real life there is a list of strings in output_list from a command > like: output_list = shlex.split( input_string, bool_cmnt, bool_posi, ) > input_string is from a file, bool_* are either True or False > repr( output_list ) > ['\xc3\xb6', '\xc3\xbc', 'i', 's', 'f'] > which should be printed right aligned. > using: > print( u'{0:>3} {1:>3} {2:>3} {3:>3} {4:>3}'.format( *output_list ) ) > ( In real life, the alignement and the width is variable ) > > How do I prepare output_list the pythonic way to be unicode strings? > What do I do, when input_strings/output_list has other codings like > iso-8859-1? You have to know the actual encoding. With that information it's easy: >>> output_list ['\xc3\xb6', '\xc3\xbc', 'i', 's', 'f'] >>> encoding = "utf-8" >>> output_list = [s.decode(encoding) for s in output_list] >>> print output_list [u'\xf6', u'\xfc', u'i', u's', u'f'] Don't worry that there are still escape codes -- when you print the individual list items the caracters will show up as expected: >>> print ", ".join(output_list) ö, ü, i, s, f