Seite 2 von 2
Re: Einfache Datei mit Umlauten einlesen
Verfasst: Freitag 8. Juli 2011, 22:59
von lunar
@CM: "file" ist nicht überall "file"

Es gibt verschiedene Implementierungen für verschiedene Systeme, manche besser, manche schlechter. Nach POSIX ist "file" nicht verpflichtet, die Kodierung einer Textdatei zu erraten. Die Ausgabe "data" ist vollkommen konform zu den Erfordernissen von POSIX, und mithin auch nicht komisch, sondern insbesondere auf alten Unix-Systemen sogar zu erwarten. Das Erraten der Kodierung ist nicht Pflicht, sondern Kür.
Insofern ist in diesem Fall doch das System des OP Schuld an dieser nicht sonderlich hilfreichen Ausgabe

Re: Einfache Datei mit Umlauten einlesen
Verfasst: Samstag 9. Juli 2011, 08:40
von snafu
@api
Ein Hinweis noch zum von dir verwendeten Shebang:
Du machst dein Skript portabler, wenn du den Zwischenschritt über das Tool `env` gehst:
Das geht die Verzeichnisse aus dem `$PATH` in der gegebenen Reihenfolge durch und führt die erste Möglichkeit aus, die sich aus Verzeichnis + `python3` ergibt. Klappt dementsprechend natürlich nur, wenn `/opt/python3.1/bin` in deinem `$PATH` auftaucht und (sofern relevant) *vor* dem Verzeichnis steht, welches einen anderen (nicht zu nutzenden) Python 3 Interpreter beinhaltet. Der Vorteil daran ist, dass andere Anwender, die ihren Interpreter beispielsweise in `/usr/bin` haben, den Shebang vor Ausführung des Skripts nicht extra anpassen müssen. `env` übernimmt also im Grunde das, was eine Shell üblicherweise nach Eingabe von einem schlichten `python3` tun würde (was ja als Shebang nicht funktioniert).
Im Übrigen finde ich es etwas ungewöhnlich, ein `/bin` unter `/opt/python3.1` zu haben (hätte es wohl eher direkt unter `/opt` gelegt), aber du wirst schon wissen, was du tust (falls du es beeinflussen kannst).

Re: Einfache Datei mit Umlauten einlesen
Verfasst: Samstag 9. Juli 2011, 09:14
von BlackJack
@snafu: Unter ``/opt/`` sind Programme in der Regel unter ``/opt/{produkt}/bin/`` oder ``/opt/{hersteller}/{produkt}/bin`` zu finden. Beispiele von dem Rechner an dem ich gerade tippe:
Code: Alles auswählen
bj@s8n:~$ ls /opt/Adobe/Reader9/bin/
acroread
bj@s8n:~$ ls /opt/jython-2.5.1/bin/
jython
bj@s8n:~$ ls /opt/IBM/informix/bin/
check_version esql glfiles infxserver onpassword
chkenv esqldemo ifx_getversion msgfile rofferr
crtcmap finderr infxmsg oncmsm sqliprint
Der Filesystem Hierarchy Standard (FHS) sagt dazu:
FHS hat geschrieben:A package to be installed in /opt must locate its static files in a separate /opt/<package> or /opt/<provider> directory tree, where <package> is a name that describes the software package and <provider> is the provider's LANANA registered name.
Ein ``/opt/bin/``-Verzeichnis fänd ich ziemlich überraschend.
Re: Einfache Datei mit Umlauten einlesen
Verfasst: Samstag 9. Juli 2011, 09:19
von snafu
Stehen die denn dann im $PATH?
Re: Einfache Datei mit Umlauten einlesen
Verfasst: Samstag 9. Juli 2011, 09:42
von BlackJack
@snafu: Teilweise. Bei anderen gibt es symbolische Links in ``/usr/local/bin`` auf die ausführbaren Binärdateien. Wieder andere starte ich mit dem kompletten Pfad.