我对以下代码有两个问题:
import subprocess
macSource1 = (r"\\Server\path\name\here\dhcp-dump.txt")
macSource2 = (r"\\Server\path\name\here\dhcp-dump-ops.txt")
with open (r"specific-pcs.txt") as file:
line = []
for line in file:
pcName = line.strip().upper()
with open (macSource1) as source1, open (macSource2) as source2:
items = []
for items in source1:
if pcName in items:
items_split = items.rstrip("\n").split('\t')
ip = items_split[0]
mac = items_split[4]
mac2 = ':'.join(s.encode('hex') for s in mac.decode('hex')).lower() # Puts the :'s between the pairs.
print mac2
print pcName
print ip
首先,正如您所看到的,脚本正在搜索" specific-pcs.txt"的内容。针对macSource1的内容获取各种细节。如何让它搜索两个macSource1& 2(因为详细信息可以在任一文件中)??
其次,我需要有一个更严格的匹配过程,因为目前一台名为' itroom02'我们不仅会找到它自己的详细信息,还会提供另一台名为' 2nd-itroom02'的机器的详细信息。我怎么能得到它?
非常感谢您的帮助! 克里斯。
答案 0 :(得分:0)
也许你应该重新调整一下这个:
macSources = [ r"\\Server\path\name\here\dhcp-dump.txt",
r"\\Server\path\name\here\dhcp-dump-ops.txt" ]
with open (r"specific-pcs.txt") as file:
for line in file:
# ....
for target in macSources:
with open (target) as source:
for items in source:
# ....
没有必要这样做line = []
之前的for line in ...:
。
就“更严格的匹配”而言,由于您没有提供文件格式的示例,我只能猜测 - 但您可能希望在完成后尝试if items_split[1] == pcName:
之类的内容在拆分之前拆分,而不是if pcName in items:
(假设名称在第二列中 - 如果没有,则相应调整)。