Samsa
Commander
- Registriert
- Dez. 2005
- Beiträge
- 2.614
Hallo zusammen,
nach ewigem gegoogle wende ich mich an Euch, in der Hoffnung, dass mir jemand helfen kann
Folgendes Problem:
Ich habe ein Python-Script, in dem eine .csv Datei eingelsen, der Inhalt durcheinandergewürfelt und danach ausgegeben wird.
(Das funktioniert auch. Lasse ich das Script laufen, ist die Ausgabe in der Shell so, wie sie sein sollte.)
Über PHP möchte ich das Script ausführen und anschließend das Ergebnis der Shell ausgeben lassen. Das funktioniert mehr oder weniger. Kommt ein Umlaut vor, schmiert die Ausgabe ab. Mit dem Fehler:
Das ausführen der PHP-Datei in der Shell funktioniert ohne Probleme.
Es scheint etwas mit dem String zu tun zu haben, der ein Problem mit der Übergabe von UTF-8 hat. (Oder so ähnlich?!)
Mit einer "Magic-Line" im Python-Script hat es nicht funktioniert.
Eventuell weiß einer von Euch ja weiter.
Hier ist das kleine Python-Script:
Hier der Inhalt der PHP
Das ganze läuft momentan auf einem Raspberry Pi 2 (Raspbian Jessie) mit Apache und PHP. Der Code läuft nur mit Python3.
Vielen Dank für's drübergucken
Jan
nach ewigem gegoogle wende ich mich an Euch, in der Hoffnung, dass mir jemand helfen kann
Folgendes Problem:
Ich habe ein Python-Script, in dem eine .csv Datei eingelsen, der Inhalt durcheinandergewürfelt und danach ausgegeben wird.
(Das funktioniert auch. Lasse ich das Script laufen, ist die Ausgabe in der Shell so, wie sie sein sollte.)
Über PHP möchte ich das Script ausführen und anschließend das Ergebnis der Shell ausgeben lassen. Das funktioniert mehr oder weniger. Kommt ein Umlaut vor, schmiert die Ausgabe ab. Mit dem Fehler:
Code:
UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 21: ordinal not in range(128)
Es scheint etwas mit dem String zu tun zu haben, der ein Problem mit der Übergabe von UTF-8 hat. (Oder so ähnlich?!)
Mit einer "Magic-Line" im Python-Script hat es nicht funktioniert.
Eventuell weiß einer von Euch ja weiter.
Hier ist das kleine Python-Script:
Code:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import csv, random, cgitb, sys;
#cgitb.enable()
with open('/home/pi/Liste/liste.csv', encoding= "UTF-8", newline="\n") as csvfile:
csvliste = csv.reader(csvfile, delimiter=';')
spalteeins = []
spaltezwei = []
for row in csvliste:
if row[0] != "":
spalteeins.append(row[0])
if row[1] != "":
spaltezwei.append(row[1])
random.shuffle(spalteeins)
random.shuffle(spaltezwei)
#print("Content-Type: text/plain;charset=utf-8\n")
for i in range(24):
print ("%s und %s" % (spalteeeins[i], spaltezwei[i]))
Hier der Inhalt der PHP
PHP:
<?php
$command = escapeshellcmd('/home/pi/liste/script.py');
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
Vielen Dank für's drübergucken
Jan
Zuletzt bearbeitet: