problem with special characters in filename

F

fizzotti

using:

Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2


Hello

I have two files (let's assume they are all in the same directory):

1) "a.dat" containing the single line "Sébastien.dat"
2) "Sébastien.dat" containing arbitraty data

I want to:

open "a.dat"
read in the single line ("Sébastien.dat")
copy the file described by the single line ("Sébastien.dat") to
another location with name "b.dat"

This is what I have started with:

import shutil

file = open('a.dat','r') #opens file for reading
for line in file:
print line
old_name = line[0:len(line)-1] #gets rid of "\n" suffix
print old_name
shutil.copy(old_name, 'b.dat') #copies file

However I get the following error:
IOError: [Errno 2] No such file or directory: 'S\xc3\xa9bastien.dat'

I'm sure this has something to do with encoding and decoding UTF-8 and
Unicode or something like that, but everything I've tried has yet to
produce any favourable results.

Thanks
Dino
 
D

Diez B. Roggisch

using:

Python 2.5.2 (r252:60911, Jul 31 2008, 17:28:52)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2


Hello

I have two files (let's assume they are all in the same directory):

1) "a.dat" containing the single line "Sébastien.dat"
2) "Sébastien.dat" containing arbitraty data

I want to:

open "a.dat"
read in the single line ("Sébastien.dat")
copy the file described by the single line ("Sébastien.dat") to
another location with name "b.dat"

This is what I have started with:

import shutil

file = open('a.dat','r') #opens file for reading
for line in file:
print line
old_name = line[0:len(line)-1] #gets rid of "\n" suffix
print old_name
shutil.copy(old_name, 'b.dat') #copies file

However I get the following error:
IOError: [Errno 2] No such file or directory: 'S\xc3\xa9bastien.dat'

I'm sure this has something to do with encoding and decoding UTF-8 and
Unicode or something like that, but everything I've tried has yet to
produce any favourable results.

You need to know two things:

- what encoding has the a.dat-content?

- what encoding uses your filesystem?

Then you need to decode the file's contents with the first one, and then
encode it with the second one.

The above at least applies to Linux. I'm not sure about windows - I
*know* they have wide-char/unicode support, but I'm not sure how exactly
that is exposed via the python file apis

Diez
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,001
Messages
2,570,254
Members
46,850
Latest member
VMRKlaus8

Latest Threads

Top