Platzieren der Daten in den jeweiligen Feldnamen in einer CSV-Datei Verwenden von Python

Ich schreibe ein Skript, das die Daten in einer txt-Datei extrahiert und in CSV-Datei schreibt … Ich kann die Daten aufteilen, konnte aber nicht in der Lage sein, es in den richtigen Feldnamen zu platzieren ……

Die Datei wird so sein:

xxxx = "qqqqqqq 5466 78455" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa" xxxx = "qqqqqqq 8795 32133" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa" xxxx = "qqqqqqq 5995 21384" zzzz = "hhhh" mmmm = "aaaa" xxxx = "qqqqqqq 6546 12346" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa" xxxx = "qqqqqqq 7895 13246" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa" xxxx = "qqqqqqq 64654 94343" yyyy = "wwww" mmmm = "aaaa 

Und der Code, den ich verwende, ist:

 import csv import re fileread = str(input("enter the name of the file :")) fread = open(fileread, "r") resultFile = open("out3.csv",'w') wr = csv.writer(resultFile) try: for lines in fread: if "attack" in lines: regexs = re.findall(r'\"(.+?)\"',lines) wr.writerow(regexs) finally: fread.close() resultFile.close() 

Das Ergebnis kommt als:

  xxxx yyyy zzzz mmmm qqqqqqq 5466 78455 wwww hhhh aaaa qqqqqqq 8795 32133 wwww hhhh aaaa qqqqqqq 5995 21384 hhhh aaaa qqqqqqq 6546 12346 wwww hhhh aaaa qqqqqqq 7895 13246 wwww hhhh aaaa qqqqqqq 4654 94343 wwww aaaa 

Aber ich brauchte die Ausgabe wie:

  xxxx yyyy zzzz mmmm qqqqqqq 5466 78455 wwww hhhh aaaa qqqqqqq 8795 32133 wwww hhhh aaaa qqqqqqq 5995 21384 hhhh aaaa qqqqqqq 6546 12346 wwww hhhh aaaa qqqqqqq 7895 13246 wwww hhhh aaaa qqqqqqq 4654 94343 wwww aaaa 

Ich weiß nicht, wie man es platziert ….. Kindly Pls !!! Hilf mir dabei …

Danke im Voraus…….

One Solution collect form web for “Platzieren der Daten in den jeweiligen Feldnamen in einer CSV-Datei Verwenden von Python”

Das Problem ist, dass Ihr regulärer Ausdruck nicht einmal versucht, die Feldnamen anzupassen, es passt einfach alles in Anführungszeichen.

Wenn du einen regulären Ausdruck schreibst, der den Feldnamen entspricht, bekommst du die Feldnamen. Beispielsweise:

 re.findall(r'(\S+?)\s*=\s*\"(.+?)\"',line) 

Dies entspricht einer Gruppe von Nicht-Whitespace-Zeichen, gefolgt von irgendeinem Whitespace, einem = jedem Whitespace und einer Gruppe von irgendetwas in Zitaten. Da es zwei Erfassungsgruppen gibt, wird jedes Ausgangselement ein 2-Tupel sein, wie:

 ('xxxx', 'qqqqqqq 5466 78455') 

So können Sie einfach die Liste der 2-Tupel in ein dict csv.DictWriter und mit csv.DictWriter die Feldnamen mit den CSV-Datenträgernamen übereinstimmen.

  • Python: Bedeutung von end = '' in der Anweisung print ("\ t", end = '') [duplicate]
  • Python 3 TCP / IP ascii Befehl
  • Numpy String Encoding
  • Tkinter Leinwandbild nicht angezeigt
  • Warum ist dieser Python-Generator immer wieder den gleichen Wert?
  • So fügen Sie eine Klassenmethode in Python dynamisch hinzu
  • Fehlende Abschnitte von OLS Regressionsmodellen in Python Statsmodellen
  • So speichern Sie Int in eine Textdatei
  • Break out of eine while-Schleife mit einer Funktion
  • Einfache Ping-Implementierung
  • Pip hängt in Windows 7
  • Python ist die beste Programmiersprache der Welt.