[Python-de] Re: os.startfile()

Diez B. Roggisch deets at web.de
Die Aug 10 17:00:09 CEST 2004


> >> Kann es sein, dass os.startfile() nicht mit Unicode- bzw.
> >> UTF8-Filenamen umgehen kann?
> >
> > Wie versuchst du das denn? Kannst du dir mit os.listdir() mal die
> > Datei geben und dann als argument fuer startfile nutzen?
>
> WinXP, Python 2.3.4
> Über tkFileDialog einen Namen holen, der Zeichen enthält, die es in
>
> Latin-1 nicht gibt. So wie hier:
> >>> import tkFileDialog
> >>> import os
> >>> f = tkFileDialog.askopenfilename()
> >>> type(f)
>
> <type 'unicode'>
>
> >>> os.startfile(f)
>
> Traceback (most recent call last):
>   File "<pyshell#10>", line 1, in -toplevel-
>     os.startfile(f)
> UnicodeEncodeError: 'ascii' codec can't encode characters in position
> 14-16: ordinal not in range(128)

Dann solltest du halt ein explizites 

f2 = f.encode("utf8")
os.startfile(f2)

einbauen, in der Annahme das windows utf-8 namen kann.

MfG Diez