Я пытаюсь создать этот скрипт, который будет проверять имя хоста компьютера, а затем искать в главном списке значение, чтобы вернуть соответствующее значение в CSV-файл. Затем откройте другой файл и найдите замену. Я знаю, что это должно быть легко, но в Python не так много делали раньше. Вот что у меня пока ...
masterlist.txt (tab delimited)
Name UID
Bob-Smith.local bobs
Carmen-Jackson.local carmenj
David-Kathman.local davidk
Jenn-Roberts.local jennr
Вот сценарий, который я создал до сих пор
#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
Прямо сейчас он просто настроен на печать основного списка. Я не уверен, что список нужно проанализировать и поместить в словарь или что-то еще. Мне действительно нужно выяснить, как искать в первом поле имя хоста, а затем вернуть поле во втором столбце.
Заранее спасибо за помощь,
Аарон
ОБНОВЛЕНИЕ : я удалил строку 194 и последнюю строку из masterlist.txt, а затем повторно запустил скрипт. Результаты были следующие:
Traceback (последний последний вызов):
Файл "update.py", строка 3, в
для строки в csv.DictReader (open (fname),
delimiter = '\ t'): файл
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/csv.py",
строка 103, в следующем
Файл self.fieldnames "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/csv.py",
строка 90, в именах полей
self._fieldnames = self.reader.next ()
_csv.Error: символ новой строки, видимый в поле без кавычек - вам нужно открыть
файл в режиме универсальной новой строки?
Текущий используемый скрипт ...
import csv
fname = "masterlist.txt"
for row in csv.DictReader(open(fname), delimiter='\t'):
print(row)