Python-Hilfe beim Lesen der CSV-Datei aufgrund von Zeilenenden fehlgeschlagen

Ich versuche, dieses Skript zu erstellen, das den Hostnamen des Computers überprüft und dann in einer Master-Liste nach dem Wert sucht, um einen entsprechenden Wert in der CSV-Datei zurückzugeben. Öffnen Sie dann eine andere Datei und suchen Sie nach einem Ersatz. Ich weiß, dass dies einfach sein sollte, aber ich habe noch nie so viel in Python gemacht. Hier ist was ich bisher habe ...

masterlist.txt  (tab delimited)
Name                 UID
Bob-Smith.local      bobs
Carmen-Jackson.local carmenj
David-Kathman.local  davidk
Jenn-Roberts.local   jennr

Hier ist das Skript, das ich bisher erstellt habe

#GET CLIENT HOST NAME
import socket
host = socket.gethostname()
print host

#IMPORT MASTER DATA
import csv, sys
filename = "masterlist.txt"
reader = csv.reader(open(filename, "rU"))

#PRINT MASTER DATA
for row in reader:
  print row

#SEARCH ON HOSTNAME AND RETURN UID



#REPLACE VALUE IN FILE WITH UID
#import fileinput
#for line in fileinput.FileInput("filetoreplace",inplace=1):
#   line = line.replace("replacethistext","UID")
#   print line

Right now, es ist nur so eingestellt, dass die Masterliste gedruckt wird. Ich bin nicht sicher, ob die Liste analysiert und in ein Wörterbuch gestellt werden muss oder was. Ich muss wirklich herausfinden, wie man das erste Feld nach dem Hostnamen durchsucht und dann das Feld in der zweiten Spalte zurückgibt.

Vielen Dank im Voraus für Ihre Hilfe, Aaron

AKTUALISIERE: Ich habe die Zeile 194 und die letzte Zeile aus der masterlist.txt entfernt und dann das Skript erneut ausgeführt. Die Ergebnisse waren die folgenden:

Traceback (letzter Anruf zuletzt):
Datei "update.py", Zeile 3, in für Zeile in csv.DictReader (open (fname), Trennzeichen = '\ t'): Datei "/System/Library/Frameworks/Python.framework/Versions/2.6/lib /python2.6/csv.py ", Zeile 103, in der nächsten self.fieldnames-Datei" /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/csv.py ", Zeile 90, in Feldnamen self._fieldnames = self.reader.next () _csv.Error: Zeilenumbruch in nicht zitiertem Feld - Müssen Sie die Datei im Universal-Newline-Modus öffnen?

Das aktuell verwendete Skript ist ...

import csv
fname = "masterlist.txt"
for row in csv.DictReader(open(fname), delimiter='\t'):
  print(row)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage