Regex nächste Zeile

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

Hallo,
ich möchte gerne die 2. Zeile im Regex ausgeben also
2. Prfl. / Spec. / Eprouvette 3. Prfl. / Spec. / Eprouvette
38716 136[J] 97[J] 119[J]
so steht es in der txt datei, die 2. Zeile ändert sich logischerweise bei jeder Txt datei.
mit
(?<=Eprouvette ).*
bekomme ich nur die obere Zeile.

Mfg,
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@andr3as93: '.' matched alle Zeichen außer Newline. Das kann man mit dem Flag re.DOTALL ändern:

Code: Alles auswählen

re.search('(?<=Eprouvette).*', text, re.DOTALL)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Testen kann man ganz gut hier: http://pythex.org/

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

Danke für die schnelle Antwort

bekomme folgende Fehlermeldung
if re.search('(?<=Eprouvette).*', text, re.DOTALL):
File "C:\Python27\lib\re.py", line 146, in search
return _compile(pattern, flags).search(string)
TypeError: expected string or buffer
zum code:

Code: Alles auswählen

		if re.search('(?<=Eprouvette).*', text, re.DOTALL):
			largeur = re.sub(r'(Eprouvette)', "", text).rstrip()
			print("Eprouvette: " + Eprouvette)
			data['Eprouvette'].append(Eprouvette)
Zuletzt geändert von Anonymous am Montag 7. September 2015, 11:12, insgesamt 1-mal geändert.
Grund: Code in Python-Code-Tags gesetzt.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@andr3as93: was ist denn "text" bei Dir? Was willst Du eigentlich erreichen?
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

also, ich habe folgende .txt datei die eingelesen wird
Zertifiziert
nach:
ISO 9001
ISO / TS 16949
EN 9100
ISO 14001
DEUTSCHE EDELSTAHLWERKE
Providing special steel solutions
D-58452 Witten, D-57012 Siegen , http://www.dew-steel.com
Datum/Date: 26.09.11 Seite/Page: 1 / 3
Zertifiziert
nach:
AD2000 W 0
TRD 100
Werkstofflieferant
gemäß
Druckgeräterichtlinie
97 / 23 EG
Abnahmeprüfzeugnis nach
Inspection Certificate acc.to / Certificat de réception selon DIN EN 10204 3.1/01.05
Zeugnis-Nr./ Certificate No. /No.de Certificat 1747039/1170138/ bit
DEUTSCHE EDELSTAHLWERKE
Hermann Stahlschmidt
Stahlges. m.b.H.
POSTFACH 500463
DE-47871 Willich
Herstellerzeichen / Supplier’s Mark / Marque d’usine
Prüfstempel / Inspector’s stamp / Poincon de l’expert
Warenempfänger
Hermann Stahlschmidt
Stahlges. m.b.H.
Formerweg
DE-47871 Willich
Ihre Auftr.-Nr. vom
Your order No. date / No.de votre commande du
30819LG | 30.06.11
Unsere Auftr.-Nr.
Our order No. /No.de notre Commande
Unsere Material-Nr.
Our material No. / No.de notre matériel
1314699 / 3 2237924
Unsere Abteilung/ Our department / Notre département Telefon /Telephone /Téléphone
VE-H 02302/292405
Produkt/Product/Produit
STAEBE AUS EDELBAUSTAHL
25 CRMO 4, WST.-NR. 1.7218
GESCHMIEDET, VERGUETET,
GERICHTET,
ANALYSE GEMAESS EN 10083-1
JEDOCH NI MAX 0,60 %
RP 0,2 = MIN 375 N/MM2
RM = 600-750 NMM2
BESTELLMASS "S" NACH DIN 7527/6
ENGINEERING STEEL BARS
25 CRMO 4, MAT.-NO. 1.7218
FORGED, HARDENED AND TEMPERED,
STRAIGHTENED,
CHEMICAL COMPOSITION ACC. TO EN 10083-1
HOWEVER NI MAX 0,60 %
RP 0,2 = MIN 375 N/MM2
RM = 600-750 N/MM2
ORDERED DIMENSION "S" ACC. TO DIN 7527/6
BARRES EN ACIER FIN DE CONSTRUCTION
25 CRMO 4, NO. MAT. 1.7218
FORGE, TREMPE ET REVENU,
DRESSE,
COMPOSITION CHIMIQUE SELON EN 10083-1
MAIS NI MAX 0,60 %
RP 0,2 = MIN 375 N/MM2
RM = 600-750 N/MM2
DIMENSION COMMANDEE "S" SELON DIN 7527/6
BARRAS DE ACERO DE CONSTRUCCION
25 CRMO 4, MAT. NO. 1.7218
FORJADO, BONIFICADO,
ENDEREZADO,
ANALISIS SEGUN EN 10083-1
PERO NI MAX 0,60 %
RP 0,2 = MIN 375 N/MM2
RM = 600-750 N/MM2
DIMENSION PEDIDA "S" SEGUN DIN 7527/6
Fertigungsauftr.-Nr. / Production lot-No. / Lot de fabrication No. :936503
Lieferschein-Nr. / Delivery note / No. de l’avis de livraison :
Schmelzen-Nr./ Heat No. / No.de coulée : 421610
Stückzahl / Piece No. / Nombre des pièces :
Gewicht/Weight/Masse :
Zeichnungs-Nr./Drawing No. / No.du dessin :
Format/Shape/ Profil : rund / round / rond
Durchm./Breite/ Diameter/width / Diamètre/largeur : 500.000[mm] +6.300 / - 6.300[mm]
Dicke/ Thickness / Epaisseur :
Länge/Length/Longueur :4000 - 6000[mm] + UL
Stückzahl und Gewicht siehe Rechnung. / Quantity and weight see delivery bill/invoice.
Nombre des piéces et masse voir facture.
Lieferzustand / Condition as supplied / Etat de livraison :
870 °CWasser/Water/L’Eau + 620 °C2HLuft / Air / L’air
Die Prüfergebnisse zu Ihrer Lieferung finden Sie auf der Rückseite bzw. den nächsten Seiten
As for test results of your delivery see overleaf. / Vouz trouverez les resultats d’essais de votre livraison aux pages suivantes.
DEUTSCHE EDELSTAHLWERKE GMBH
Abnahmetechnik/ Inspection department / Département de Réception
Krause
Abnahmebeauftragter/DerWerkssachverständige
Test House Manager/Works’ inspector / Resousable Reception/L’Agent Réceptionnaire de l’usine
__

Zertifiziert
nach:
ISO 9001
ISO / TS 16949
EN 9100
ISO 14001
DEUTSCHE EDELSTAHLWERKE
Providing special steel solutions
D-58452 Witten, D-57012 Siegen , http://www.dew-steel.com
Datum/Date: 26.09.11 Seite/Page: 2 / 3
Zeugnis-Nr.
Certificate No. / No.de Certificat
Unsere Auftr.-Nr.
Our order No. /No.de notre Commande
Ihre Auftr.-Nr. vom
Your order No. date / No.de votre commande du
Fertigungsauftr.-Nr.
Production lot-No. / Lot de fabrication No.
1747039/1170138/ bit 1314699 / 3 30819LG 936503
Schmelzen-Nr.
Heat No. / No.de coulée
Erschmelzungsart
Steelmaking process / Procédé d’élaboration
Gießverfahren
Casting process / Procédé de coulée
421610 E Blockguß
Chemische Zusammensetzung/ Chemical Composition/ Composition chimique
C Si Mn P S Cr Mo Ni Cu Sn V Al N
Ist / Actual / Actuel 0.27 0.25 0.70 0.008 0.002 1.14 0.27 0.26 0.18 0.012 < 0.01 0.032 0.0087 [%]
Ca H2 ppm O2 ppm
Ist / Actual / Actuel < 0.0005 1.7 <25 [%]
Zugversuch/ Tensile test / Essai de traction
Lieferzustand / Condition as supplied / Etat de livraison
Probenabm./Specimen dimension / Dimension d’éprouvette Probenrichtung/ Specimen direction / Sens de Prélèvement Prüftemp./ Test temperature / Température d’essai
Zugprobe; 10 mm rd quer / transverse / traverse 23[°C]
Proben-Nr./Specimen-No./ No.d’eprouvette Rpo.2[MPa (N/mm²)] Rm[MPa (N/mm²)] A5[%] Z[%]
38716 427 635 20.9 55
Soll / Required /Demandé >= 375 600 - 750 >= 14
Schlagbiegeversuch/ Impact test / Essai de résilience
Lieferzustand / Condition as supplied / Etat de livraison
Probenform/ Type of specimen / Type d’éprouvette Probenrichtung/ Specimen direction / Sens de Prélèvement Prüftemp./ Test temperature / Température d’essai
[CHARPY V] quer / transverse / traverse 23[°C]
Proben-Nr./Specimen-No./ No.d’eprouvette 1. Prfl. / Spec. / Eprouvette 2. Prfl. / Spec. / Eprouvette 3. Prfl. / Spec. / Eprouvette
38716 136[J] 97[J] 119[J]
Soll / Required /Demandé >=30[J]
Korngröße/ Grain size/ Grosseur de grain
Referenzzustand /Reference condition /Etat de reférence
Größe/ Size / Grosseur
5 und feiner / and smaller / et plus fin
Mikroskopischer Reinheitsgrad/ Microscopic cleanliness/ Degré de propreté micrographique
ISO 6336-5 ME NACH METHODE/ ACC. to METHOD/ SELON METHOD/ SEGUN METODO ISO 4967 A GEWAEHRLEISTET / GUARANTEED / GARANTI / GARANTIZADO
Mikroskopischer Reinheitsgrad/ Microscopic cleanliness/ Degré de propreté micrographique
DIN 50602 K4(Oxide) <=20 GEWAEHRLEISTET / GUARANTEED / GARANTI / GARANTIZADO
Blaubruch/ blue brittleness / fragilité au bleu
MAKRO-R SEP 1584 <= 2(3) GEWAEHRLEISTET/ GUARANTEED/ GARANTI/ GARANTIZADO/
US-Prüfung/ Ultrasonic testing / Contrôle par ultrasons
Die Lieferung wurde US-geprüft nach / Delivery US-checked acc.to / Livraison contrôlé par ultrasons selon : EN 10308 1a Tab2, Kl.4(Kern 3) 180 Grad - Rand 1/3D min.60mm
Die Lieferung wurde auf Identität geprüft (Optische Emissionsspektrometrie) / Identity has been checked (Optical Emission Spectrometry) / Identification (Spectro.) a été effectué
Rißkontrolle wurde durchgeführt. / Testing for surface cracks has been performed. / Contrôle de fissures à la surface a été effectué.
Die Lieferung wurde besichtigt und auf Maß kontrolliert / Visual inspection and control of dimensional accuracy have been performed /
Contrôle visuel et inspection dimensionnelle ont été effectué
Umformgrad/ Hot forming ratio / Ratio de déformation : >3fach / fold / fois
Das Material ist frei von Radioaktivität. / The Product is free from radioactive. / Le matériel n’est pas radioactif.
El material es libre de radioactividad.

Zertifiziert
nach:
ISO 9001
ISO / TS 16949
EN 9100
ISO 14001
DEUTSCHE EDELSTAHLWERKE
Providing special steel solutions
D-58452 Witten, D-57012 Siegen , http://www.dew-steel.com
Datum/Date: 26.09.11 Seite/Page: 3 / 3
Zeugnis-Nr.
Certificate No. / No.de Certificat
Unsere Auftr.-Nr.
Our order No. /No.de notre Commande
Ihre Auftr.-Nr. vom
Your order No. date / No.de votre commande du
Fertigungsauftr.-Nr.
Production lot-No. / Lot de fabrication No.
1747039/1170138/ bit 1314699 / 3 30819LG 936503
Erläuterung/ Explanations/ Explications
¤Erschmelzungsart/ Steelmaking process / Procédé d’élaboration:
E =Elektrostahl / Electric-arc-furnace steel / Acier électrique
¤Gießverfahren/ Casting process / Procédé de coulée:
Blockguß =Blockguß / ingot casting / fondu en lingots
Es wird bestätigt, daß die Lieferung geprüft wurde und den Vereinbarungen bei der Bestellungsannahme enspricht.
We hereby certify that the material described above has been tested and complies with the terms of the order.
Nous certifions que la livraison été vérifiée et est conforme aux stipulations de l´acception de la commande.
mein bisheriger code sieht wie folgt aus:

Code: Alles auswählen

#!/usr/bin/env python3.4
# encoding: utf-8

import re
import codecs
import os
import json
import csv

lines = []
text = []

excel_export_file = open("export.csv", "w")
excel_writer = csv.writer(excel_export_file, dialect="excel")

for report_file in os.listdir("./reports/"):

	print("\n----- FILE -----")
	print(os.path.join("./reports/" + report_file) + "\n")

	file_content = codecs.open(os.path.join("./reports/" + report_file), mode='r', errors='ignore', encoding='utf-8')

	charge = None
	selone = None
	doformation = None
	largeur = None
	data = {}
	data['charge'] = []
	data['actual'] = []
	data['doformation'] = []
	data['selon'] = []
	data['largeur'] = []
	data['Eprouvette'] = []

	for line in file_content.readlines():
		
		# search charge
		if re.search(r'(?<=/ No.de coule :).*', line):
			charge = re.sub(r'(Schmelzen-Nr./ Heat No. / No.de coule :)', "", line).rstrip()
			data['charge'] = charge
			print("charge: " + charge)

                

		# search for Actual * [%]
		if re.search(r'(?<=Actual).*(?=\[%\])', line):

			f_line = re.sub(r'(Ist \/ Actual \/ Actuel )', "", line)
			f_line = f_line.replace('[%]', '')
			f_line = f_line.rstrip()

			print("actual data: " + f_line)

			f_line = f_line.split(" ")

			data['actual'].append(f_line)

		if re.search(r'(?<=ultrasons selon : ).*', line):
			selon = re.sub(r'(Die Lieferung wurde 100% US-geprft nach / Delivery US-checked 100% acc.to / Livraison contrl par ultrasons selon :) ', "", line).rstrip()
			print("selon: " + selon)
			data['selon'].append(selon)


		if re.search(r'(?<=formation : ).*', line):
			doformation = re.sub(r'(Umformgrad/ Reduction Ratio / Ratio de dformation : )', "", line).rstrip()
			print("doformation: " + doformation)
			data['doformation'].append(doformation)


		if re.search(r'(?<=largeur :).*', line):
			largeur = re.sub(r'(Durchm./Breite / Diameter/width / Diamtre/largeur :)', "", line).rstrip()
			print("largeur: " + largeur)
			data['largeur'].append(largeur)

		if re.search(r'(?<=Eprouvette).*', text, re.DOTALL):
			largeur = re.sub(r'(Eprouvette)', "", text).rstrip()
			print("Eprouvette: " + Eprouvette)
			data['Eprouvette'].append(Eprouvette)

		if re.search(r'', line):
			pass

		if re.search(r'', line):
			pass

		if re.search(r'', line):
			pass


	lines.append(data)

excel_export_file.close()

print("\n\n----- JSON DATA -----\n")
print(json.dumps(lines))
print("\n")
ich möchte gerne die in der TXT datei (fett + groß geschrieben) Zeile ausgeben
Diese Zeile ändert sich aber von TXT datei zu TXT datei, daher wollte ich zu der Zeile dadrüber springen und dann die nächste Zeile auswählen.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@andr3as93: das sieht mir nach einem von einem schlechten PDF schlecht in Text umgewandelte Tabelle aus. Gibt es keine Möglichkeit die Umwandlung besser hinzubekommen?

text ist ja auch bei Dir was ganz anderes (wird gar nicht benutzt). Du gehst ja mit einer for-Schleife elementweise durch eine Liste, die nächste Zeile ist damit erst mit dem nächsten for-Schritt verfügbar. Würdest Du die Datei erst gar nicht in einer Liste lesen, sondern die Datei als Iterator benutzen, kannst Du mit next(..) auf die nächste Zeile zugreifen. Deine regulären Ausdrücke sind zum einen kaputt, weil die Zeilen viele Sonderzeichen enthalten zum anderen gar nicht nötig, weil Du nur statische Texte abfragst. Ich habe mal die eigentlichen Suchtexte als Konstanten rausgeschrieben und die for-Schleife vereinfacht.
Ungetestet:

Code: Alles auswählen

import codecs
import os
import glob
from collections import defaultdict

REPORTS_PATH = "./reports"

TAGS = {
    "charge": "Schmelzen-Nr./ Heat No. / No.de coule :",
    "actual": "Ist / Actual / Actuel"
    "selon": "Die Lieferung wurde US-geprüft nach / Delivery US-checked acc.to / Livraison contrôlé par ultrasons selon :",
    "doformation": "Umformgrad/ Reduction Ratio / Ratio de dformation :",
    "largeur": "Durchm./Breite / Diameter/width / Diamtre/largeur :",
}
TAGS_TWO_LINES = {
    "Eprouvette:", "Proben-Nr./Specimen-No./ No.d’eprouvette 1. Prfl. / Spec. / Eprouvette 2. Prfl. / Spec. / Eprouvette 3. Prfl. / Spec. / Eprouvette",
}

lines = []
for report_filename in glob.iglob(os.path.join(REPORTS_PATH, '*')):
    print("\n----- FILE -----")
    print(report_filename + "\n")

    file_content = codecs.open(report_filename, mode='r', errors='ignore', encoding='utf-8')

    data = defaultdict(list)
    for line in file_content:
        for tag, identifier in TAGS.iteritems():
            if line.startswith(identifier):
                data[tag].append(line[len(identifier):].strip())
        for tag, identifier in TAGS_TWO_LINES.iteritems():
            if line.startswith(identifier):
                data[tag].append(next(file_content).strip())
    lines.append(data)
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

müsst ich mal schauen, was ich für programme finde die mir die PDF's in ordentlichem TXT format konvertieren, habe den code jetzt noch ein wenig abgeändert erhalte aber noch den fehler
if line.startswith(identifier):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 27: ordinal not in range(128)
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@andr3as93: benutzt Du Python 2 oder Python 3?
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

2.7
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@andr3as93: weil in deiner Shebang-Zeile steht 3.4. Bei 2.7 mußt Du alle literalen Strings in Unicode-Strings umwandeln:

Code: Alles auswählen

TAGS = {
    "charge": u"Schmelzen-Nr./ Heat No. / No.de coule :",
    "actual": u"Ist / Actual / Actuel"
    "selon": u"Die Lieferung wurde US-geprüft nach / Delivery US-checked acc.to / Livraison contrôlé par ultrasons selon :",
    "doformation": u"Umformgrad/ Reduction Ratio / Ratio de dformation :",
    "largeur": u"Durchm./Breite / Diameter/width / Diamtre/largeur :",
}
TAGS_TWO_LINES = {
    "Eprouvette:", u"Proben-Nr./Specimen-No./ No.d’eprouvette 1. Prfl. / Spec. / Eprouvette 2. Prfl. / Spec. / Eprouvette 3. Prfl. / Spec. / Eprouvette",
}
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

ja habe am anfang 3.4 benutzt weil dort aber die regex irgendwie nicht funktioniert haben bin ich auf 2.7 umgestiegen.

jetzt sagt er mir folgendes

for tag, identifier in TAGS_TWO_LINES.iteritems():
AttributeError: 'set' object has no attribute 'iteritems'

Danke übrigens für die raschen antworten
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

andr3as93 hat geschrieben:ja habe am anfang 3.4 benutzt weil dort aber die regex irgendwie nicht funktioniert haben bin ich auf 2.7 umgestiegen.
Das wird einen anderen Grund gehabt haben. Reguläre Ausdrücke funktionieren auch mit Python 3.

andr3as93 hat geschrieben:AttributeError: 'set' object has no attribute 'iteritems'
In Zeile 16 ist ein kleiner Tippfehler: Statt '"Eprouvette:",' schreibe '"Eprouvette":', sonst gerät das Dictionary zu einer Set-Comprehension.
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

Super, danke...

Also es wird mir jetzt
Charge und Actual ausgegeben der rest leider nicht, kommt auch kein Fehler oder ähnliches wie bekomme ich denn jetzt noch selon, doformation, largeur und Eprouvette?
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@andr3as93: da stimmen dann wahrscheinlich die Suchstrings nicht mit den wirklichen überein. Du mußt halt selbst schauen, nach was da tatsächlich geschaut werden muß.
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

Also ich hab jetz wirklich alles erdenkliche ausprobiert aber bekomme das nicht hin.. wenn ich nach anderen Zeilen suche funktioniert es komischerweise

Code: Alles auswählen

#!/usr/bin/env python2.7
# encoding: utf-8
import codecs
import os
import glob
from collections import defaultdict
import json
import csv
     
REPORTS_PATH = "./reports/"
     
TAGS = {
        "charge": u"Schmelzen-Nr./ Heat No. / No.de coule :",
        "actual": u"Ist / Actual / Actuel",
        "selon": u"Die Lieferung wurde US-geprüft nach / Delivery US-checked acc.to / Livraison contrôlé par ultrasons selon : ",
        "doformation": u"Umformgrad/ Hot forming ratio / Ratio de déformation :",
        "largeur": u"Durchm./Breite/ Diameter/width / Diamètre/largeur :",
}
TAGS_TWO_LINES = {
        "Eprouvette": u"Proben-Nr./Specimen-No./ No.d’eprouvette 1. Prfl. / Spec. / Eprouvette 2. Prfl. / Spec. / Eprouvette 3. Prfl. / Spec. / Eprouvette",
        "Probe": u"Rpo.2[MPa (N/mm²)] Rm[MPa (N/mm²)] A5[%] Z[%]",
}
     
lines = []
for report_filename in glob.iglob(os.path.join(REPORTS_PATH, '*')):
        print("\n----- FILE -----")
        print(report_filename + "\n")
     
        file_content = codecs.open(report_filename, mode='r', errors='ignore', encoding='utf-8')
     
        data = defaultdict(list)
        for line in file_content:
            for tag, identifier in TAGS.iteritems():
                if line.startswith(identifier):
                    data[tag].append(line[len(identifier):].strip())
            for tag, identifier in TAGS_TWO_LINES.iteritems():
                if line.startswith(identifier):
                    data[tag].append(next(file_content).strip())
        lines.append(data)
        
#excel_export_file.close()
 
print("\n\n----- JSON DATA -----\n")
print(json.dumps(lines))
print("\n")
edit: erledigt ;) der mochte die sonderzeichen nicht!!
Zuletzt geändert von andr3as93 am Montag 7. September 2015, 13:33, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

coulée ist noch falsch geschrieben und bei Probe fehlt noch der Anfang der Zeile:

Code: Alles auswählen

TAGS = {
        "charge": u"Schmelzen-Nr./ Heat No. / No.de coulée :",
        "actual": u"Ist / Actual / Actuel",
        "selon": u"Die Lieferung wurde US-geprüft nach / Delivery US-checked acc.to / Livraison contrôlé par ultrasons selon : ",
        "doformation": u"Umformgrad/ Hot forming ratio / Ratio de déformation :",
        "largeur": u"Durchm./Breite/ Diameter/width / Diamètre/largeur :",
}
TAGS_TWO_LINES = {
        "Eprouvette": u"Proben-Nr./Specimen-No./ No.d’eprouvette 1. Prfl. / Spec. / Eprouvette 2. Prfl. / Spec. / Eprouvette 3. Prfl. / Spec. / Eprouvette",
        "Probe": u"Proben-Nr./Specimen-No./ No.d’eprouvette Rpo.2[MPa (N/mm²)] Rm[MPa (N/mm²)] A5[%] Z[%]",
}
andr3as93
User
Beiträge: 9
Registriert: Montag 7. September 2015, 08:02

Danke, er mag einfach die Sonderzeichen nicht, wenn ich die komplett missachte funktioniert es :)
BlackJack

@andr3as93: Das ``errors='ignore'`` könnte das Problem sein beziehungsweise maskieren. Entweder sind die Eingabedaten UTF8 kodiert oder sie sind es nicht. Wenn sie es nicht sind, dann ist ignorieren der falsche Weg. Dann sollte man die tatsächliche Kodierung der Daten angeben.
Antworten