[Tutor] UnicodeDecodeError when copying files with Umlauten

Severin Kacianka severin.kacianka at aon.at
Sat Jul 9 11:38:37 CEST 2005


Hello, 

I am very new to python programming and totally new to GUI-programming. Now I 
try to write a GUI for a little script I wrote some time ago, and get a Error 
I cannot explain. 
As it may be helpful for you to see the whole scripts I put them both online:
The CLI-application (and library): http://kacianka.at/python/m3u2iso.py
The GUI-code: http://kacianka.at/python/win.py

The script essentially copies files listed in a m3u file into a given 
directory. The essential line in the library is line 95:

shutil.copyfile(file,'%s%s'% (self.tmpDir,self.currentFile ))

Now there is no problem with "normal" files, but if I try to copy a file with 
German Umlauten (ä,ü,ö,ß) a UnicodeDecodeError is triggered in this GUI-Code:

def OnConvert(self,event):
	"""Starts everything"""
	m2i = m3u2iso.m3uToIso(self.m3uPath,self.tmpDir)
	if DEBUG:
		print "m3u2iso::m3uPath: %s" % m2i.m3uPath
		print "m3u2iso::tmpDir: %s"  % m2i.tmpDir
	m2i.getSongPath()
	m2i.cpFilesToTmpDir(self.shortFileNames,self.verbose,self.start)

If I run the script on the CLI, it always works, no matter if the files 
contain Umlaute or not. However if I do the same thing with the GUI I get 
this error:

Traceback (most recent call last):
  File "./win.py", line 132, in OnConvert
    m2i.cpFilesToTmpDir(self.shortFileNames,self.verbose,self.start)
  File "/home/severin/python/m3u2iso.py", line 100, in cpFilesToTmpDir
    print "Unicode Error n trying to copy %s to %s%s" % 
(file,self.tmpDir,self.currentFile )
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfc in position 23: 
ordinal not in range(128)

This happens when I try to copy a file called "Kettcar - Landungsbrücken 
raus.mp3". 
I cannot explain to myself why this happens in the GUI but not in the CLI 
version. The code is the same! 

Is there an obvious error in my code, or do I maybe totally missunderstand the 
concept of handling files with nonstandard characters in them? 

Thank you for you time,

Severin
-- 
They that can give up essential liberty to obtain a little temporary safety 
deserve neither liberty nor safety.
	Benjamin Franklin


More information about the Tutor mailing list