Don't use print, write directly to sys.stdout. Print is not intended for precise output formatting; it's intended for quick outputs that are useable most of the time.
John Roth "Paul Watson" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > #!/usr/bin/env python > > # Using a print statement to stdout results in an > # unwanted space character being generated at the > # end of each print output. Same results on > # DOS/Windows and AIX. > # > # I need precise control over the bytes that are > # produced. Why is print doing this? > # > import sys > > # If this is a DOS/Windows platform, then put stdout > # into binary mode so that only the UNIX compatible newline > # will be generated. > # > try: > import msvcrt, os > msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) > except: > print 'This is not an msvcrt platform.' > pass > > # Using print with newline suppressed generates a space at the > # end of each print statement. > # > for i in range(3): > print '%d,60,' % (i), > for j in range(10): > print '%d,' % (j), > print '' > > # Using a list and doing a join does not result in the space > # character being generated. > # > for i in range(3): > alist = [] > alist.append('%d,60,' % (i)) > for j in range(10): > alist.append('%d,' % (j)) > print ''.join(alist) > > sys.exit(0) > -- http://mail.python.org/mailman/listinfo/python-list