Python ajuda a ler arquivo csv falhando devido a terminações de linha
Estou tentando criar esse script que verificará o nome do host do computador e, em seguida, procure na lista principal o valor para retornar um valor correspondente no arquivo csv. Em seguida, abra outro arquivo e encontre uma substituição. Eu sei que isso deve ser fácil, mas não fiz muito em python antes. Aqui está o que eu tenho até agora ...
masterlist.txt (tab delimited)
Name UID
Bob-Smith.local bobs
Carmen-Jackson.local carmenj
David-Kathman.local davidk
Jenn-Roberts.local jennr
Aqui está o script que eu criei até agora
#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
No momento, está pronto para imprimir a lista principal. Não tenho certeza se a lista precisa ser analisada e colocada em um dicionário ou o quê. Eu realmente preciso descobrir como pesquisar o primeiro campo pelo nome do host e retornar o campo na segunda coluna.
Agradecemos antecipadamente a sua ajuda, Aaron
ATUALIZAR: Removi a linha 194 e a última linha do masterlist.txt e executei novamente o script. Os resultados foram os seguintes:
Traceback (última chamada mais recente):
Arquivo "update.py", linha 3, na linha csv.DictReader (open (fname), delimitador = '\ t'): Arquivo "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/ python2.6 / csv.py ", linha 103, no próximo arquivo self.fieldnames" /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/csv.py ", linha 90, em nomes de campo self._fieldnames = self.reader.next () _csv.Error: caractere de nova linha visto em um campo não citado - você precisa abrir o arquivo no modo de nova linha universal?
O script atual que está sendo usado é ...
import csv
fname = "masterlist.txt"
for row in csv.DictReader(open(fname), delimiter='\t'):
print(row)