我正在尝试创建此脚本,该脚本将检查计算机主机名,然后在主列表中搜索该值以返回 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
现在,它只是设置为打印主列表。我不确定是否需要解析该列表并将其放入字典或其他什么中。我真的需要弄清楚如何在第一个字段中搜索主机名,然后返回第二列中的字段。
在此先感谢您的帮助,
亚伦
UPDATE:我从 masterlist.txt 中删除了第 194 行和最后一行,然后重新运行该脚本。结果如下:
回溯(最近一次调用最后一次):
文件“update.py”,第 3 行,位于
对于 csv.DictReader 中的行(open(fname),
分隔符='\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)