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

"Martin v. Löwis" martin at v.loewis.de
Fre Aug 13 08:34:37 CEST 2004


Diez B. Roggisch wrote:
> os.startfile kann genau das, was das OS kann - wenn Windows kein utf8 bei 
> Dateinamen zulaesst bzw. nicht entsprechend konfiguriert ist, dann kann 
> python da nix dran drehen.... Angeblich benutzt ntfs utf8 - Martin kann da 
> bestimmt was zu sagen.

Windows (NT+) lässt durchaus beliebige Unicode-Dateinamen zu. Das ist
ja genau das Problem des OP: da ist eine Datei mit einem griechischen
Namen, aber os.startfile kann die nicht öffnen. Das liegt aber an
der Implementierung von os.startfile, die, wie Peter Otten beobachtet,
eigentlich ShellExecuteW aufrufen müsste.

Windows hat mit UTF-8 nicht so viel am Hut: Die Dateinamen werden
im NTFS in UTF-16LE gespeichert. Die API-Funktionen erwarten WCHAR
(zumindest die, die mit W enden).

> Unter unix kannst du mit "file" den mimetype einer Datei ermitteln. Da stellt 
> sich dann aber das Problem der assoziation von Dateiname und Programm - kde 
> und gnome haben da was fuer, aber das ist dann eben auch proprietaer.

Man könnte natürlich trotzdem eine Bibliothek schreiben, die die 
jeweiligen Mechanismen anspricht, und eine einheitliche Schnittstelle 
dafür bietet.

Ciao,
Martin