Different class 'str' between v3.
Terry Reedy
tjreedy at udel.edu
Fri Sep 16 18:30:03 EDT 2011
On 9/16/2011 9:52 AM, Vincent Vande Vyvre wrote:
> Testing the following code, I've differend return with python 3.1.2 and
> 3.2.2
running on two different machines with two different versions of Linux.
I get
> # -*- coding: utf-8 -*-
>
> import os
> import sys
> import platform
>
> print('\nPython version: ', sys.version.split()[0])
> print(platform.platform())
>
> paths = ['/home/vincent/image.jpg', '/home/vincent/àéèîö.jpg']
>
> for path in paths:
> print('\nPath: {0}, Type: {1}'.format(path, type(path)))
> if not os.path.exists(path) or not os.path.isfile(path):
> print('File not found: {0}'.format(path))
> else:
> print('File exists')
I get
Python version: 3.2.2rc1
Windows-7-6.1.7601-SP1
Path: /home/vincent/image.jpg, Type: <class 'str'>
File not found: /home/vincent/image.jpg
Path: /home/vincent/àéèîö.jpg, Type: <class 'str'>
File not found: /home/vincent/àéèîö.jpg
so
> [vincent at myhost ~]$ python string_2.py
>
> Python version: 3.2.2
> Linux-3.0-ARCH-x86_64-Pentium-R-_Dual-Core_CPU_T4500_ at _2.30GHz-with-glibc2.2.5
>
> Path: /home/vincent/image.jpg, Type: <class 'str'>
> File exists
> Traceback (most recent call last):
> File "string_2.py", line 13, in <module>
> print('\nPath: {0}, Type: {1}'.format(path, type(path)))
> UnicodeEncodeError: 'ascii' codec can't encode characters in position
> 21-25: ordinal not in range(128)
is not specific to 3.2.2 in general. Try the two Python versions on the
same machine. Or try the test suite on each. See the test module doc for
how.
--
Terry Jan Reedy
More information about the Python-list
mailing list