A Thursday 22 January 2009, Vicent Mas escrigué:
> Hi,
>
> In a Windows XP I've renamed a PyTables file to a name containing the
> unicode character \u0140. As this character is not mapped to any key
> in my keyboard I used the charmap application to write the name and
> then copy and paste. My problem is that I don't know how to open this
> file. What I've tried is:
>
> 1) pass the python unicode string to the openFile method. It fails:
>
> In [63]: f = tables.openFile(u'para\u0140lels.h5')
> ---------------------------------------------------------------------
>------ UnicodeEncodeError Traceback (most
> recent call last)
>
> C:\Documents and Settings\vmas\Escritorio\tonto\paraig³a\<ipython
> console> in <m odule>()
>
> C:\Python25\lib\site-packages\tables\file.pyc in openFile(filename,
> mode, title, rootUEP, filters, nodeCacheSize, **kwargs)
> 239
> 240 # Finally, create the File instance, and return it
> --> 241 return File(path, mode, title, rootUEP, filters,
> **params) 242
> 243
>
> C:\Python25\lib\site-packages\tables\hdf5Extension.pyd in
> tables.hdf5Extension.F ile.__cinit__()
>
> UnicodeEncodeError: 'ascii' codec can't encode character u'\u0140' in
> position 4
>
> : ordinal not in range(128)
>
> 2) Try to find out the encoded representation of the unicode string
> and use it
>
> In [65]: sys.getfilesystemencoding()
> Out[65]: 'mbcs'
>
> In [66]: fname = u'para\u0140lels.h5'.encode('mbcs')
>
> In [67]: fname
> Out[67]: 'para?lels.h5'
>
> In [68]: f = tables.openFile(fname)
> ---------------------------------------------------------------------
>------ IOError Traceback (most
> recent call last)
>
> C:\Documents and Settings\vmas\Escritorio\tonto\paraig³a\<ipython
> console> in <m odule>()
>
> C:\Python25\lib\site-packages\tables\file.pyc in openFile(filename,
> mode, title, rootUEP, filters, nodeCacheSize, **kwargs)
> 239
> 240 # Finally, create the File instance, and return it
> --> 241 return File(path, mode, title, rootUEP, filters,
> **params) 242
> 243
>
> C:\Python25\lib\site-packages\tables\hdf5Extension.pyd in
> tables.hdf5Extension.F ile.__cinit__()
>
> C:\Python25\lib\site-packages\tables\utils.pyc in
> checkFileAccess(filename, mode )
> 145 # The file should be readable.
> 146 if not os.access(filename, os.F_OK):
> --> 147 raise IOError("``%s`` does not exist" %
> (filename,)) 148 if not os.path.isfile(filename):
> 149 raise IOError("``%s`` is not a regular file" %
> (filename,))
>
> IOError: ``para?lels.h5`` does not exist
>
> In [69]:
>
> So what have I to do in order to open the file?
Well, it seems that PyTables doesn't support unicodes filenames.
However, fixing that was surprisingly easy. See:
http://www.pytables.org/trac/ticket/202
HTH,
--
Francesc Alted
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Pytables-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pytables-users