[Python-de] Ich vermisse .... eval?

Peter J. Holzer hjp-usenet3 at hjp.at
Do Okt 12 14:55:01 EDT 2017


On 2017-10-12 09:55, Hermann Riemann <nospam.ng at hermann-riemann.de> wrote:
> Am 11.10.2017 um 23:25 schrieb Peter J. Holzer:
>> On 2017-10-11 12:14, Hermann Riemann <nospam.ng at hermann-riemann.de> wrote:
>>> Mich würde schon interessieren,
>>> welche Linux Distributionen keine Probleme mit
>>> Python > 3.4 haben.
>> 
>> Was meinst Du mit "Probleme haben"? Debian stable hat Python 3.5 (Debian
>> ist nicht dafür bekannt, stets die neueste Software zu haben), und ich
>> könnte sicher problemlos Python 3.6 oder 3.7 (alpha) installieren.
>
> Auf alle aktuellen Rechner mit intel oder AMD Prozessor
> verwende ich SuSE 42.2 bzw. SuSE 42.3
> und da wird nur Python 3.4 angeboten.
> Python 3.5 Auswahl führt zu Warnungen von Inkompatibilitäten.

Wie kannst Du 3.5 auswählen, wenn nur 3.4 angeboten wird? Irgendwie
widersprichst Du Dir gerade selbst.

Offenbar hast Du Dich irgendwo im Paketmanagement verheddert. Das würde
ich nun nicht als "Problem der Distribution mit Python > 3.4"
bezeichnen.

>>> *.csv Dateien wird mit Linux nach utf-8 konvertiert und dann ohne
>>> csv-Modul bearbeitet.
>
>> Warum ohne csv-Modul?
>
> Bei mir sieht es prinzipiell so aus:
>
> aktionen=[]
> f=open("iurgendwas.csv")
> for line in f:
>     liste=line.rstrip().split(';')
>     if len(liste)<zu_kurz: continue
>     dict={}
>     aktionen.append(dict)
>     dict["euro"]=liste[6]
>     ..
>
> # Auswertung von Aktionen
> ..
>
> Was soll da mit dem csv-Modul besser gehen?

Was bei Deinem Code z.B. alles nicht funktioniert, in der Praxis aber
vorkommt und mit dem csv-Modul funktionieren würde:

 * Strichpunkte innerhalb eines Feldes.
 * Gequotete Felder
 * Newlines innerhalb eines Feldes.

Außerdem kann das csv-Modul automatisch die Felder einem dict zuweisen
(die Keys kommen aus der Header-Zeile), und Deine Zeile:

>     dict["euro"]=liste[6]

schaut verdächtig danach aus, als ob Du das der Anfang einer Reihe von
manuellen Zuweisungen an ein dict sein könnte.

Zuguterletzt kann das csv-Modul auch csv-Files korrekt schreiben, auch
dann wenn die Daten "seltsame Zeichen" (wie z.B. Strichpunkte)
enthalten.

Ist vielleicht egal, wenn Du nur Files lesen willst, die Du selber ge

>>> Bei *.mbox bin ich mit Python aufgeschmissen weile sie sowohl so als
>>> auch utf-Zeichen enthalten. ( könnte ich ich noch mittels Zerlegung
>>> überwinden.) Allerdings die decodierung danach ..
>
>> Dafür gibt es das email Package.
>
> Wird bei SuSE 42 nicht angeboten.

Das ist Teil der Standard-Library von Python:

% python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import email
>>> help(email)

        hp


-- 
   _  | Peter J. Holzer    | Fluch der elektronischen Textverarbeitung:
|_|_) |                    | Man feilt solange an seinen Text um, bis
| |   | hjp at hjp.at         | die Satzbestandteile des Satzes nicht mehr
__/   | http://www.hjp.at/ | zusammenpaßt. -- Ralph Babel


Mehr Informationen über die Mailingliste python-de