On 2/16/2011 1:32 AM, fireinice wrote:
On Feb 16, 1:24 am, fireinice<zhzhqi...@gmail.com>  wrote:
Hi, all
I'm just working around to generate some fake file for parsing. and I
notice some weired thing happen.
     time = str(random.randint(1000000000000000, 9999999999999999))
     s_id = str(random.randint(1000000000000000, 9999999999999999))
     p_id = str(random.randint(1000000000000000, 9999999999999999))
     a_id = str(random.randint(1000000000000000, 9999999999999999))
     s = "test"
     a = [time, s_id, p_id, a_id, s]
     print '\t'.join(a)

the output is:
3107903582321032        6101282916386924        719897196119318 
1780339444980186test

you can notice that there is no tab between a_id and s
if I switch a_id and p_id, it still happen, but if I delete one of
ids, the problem gone.
I tried this with python2.6 from debian source and python2.3 which I
compiled from source. the result are both the same.
What happened to str.join?
thanks

I'm sorry, I found it should be the terminal width caused visual
problem, please kindly ignore this post.

For future reference, the way to get more info about what is really in a string is to print its repr(), or even its list() version. Len() is also helpful. On Windows, both the Command Prompt window and IDLE refuse to expand tabs, so

>>> s='\t'.join(('a','b','c'))
>>> str(s)
'a\tb\tc'
>>> repr(s)
"'a\\tb\\tc'"
>>> len(s)
5
>>> list(s)
['a', '\t', 'b', '\t', 'c']

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to