<p>print(tablate([column],headers..)命令在每次读取“IP地址”行后执行,这就是为什么您只看到标题和一行数据。在</p>
<p>您可以做的是将结果的每一行(您称之为“column”)追加到一个数组中。这将创建一个包含所有结果的表。在</strong>读取文件的所有行之后,执行print(tablate())命令<strong>。在</p>
<p>首先,在读取文本文件之前创建一个空数组-我将其称为table:</p>
<pre><code>table = []
with open("testinput.txt", "r") as text_file:
</code></pre>
<p>将列数组追加到表数组(表.append[column]),并消除当前使用的print(tablate())命令。在</p>
^{pr2}$
<p>在读取文件并引用新变量“table”之后,移动print(tablate())命令。在</p>
^{3}$
<p>您不需要循环-“for line”命令在文本文件中循环。此外,完成后关闭文件(文本_文件.关闭)在</p>
<p>函数如下所示:</p>
<pre><code>table = []
with open("testinput.txt", "r") as text_file:
for line in text_file:
if "IP Address =" in line:
start = line.find('IP Address = ')
endline = line.find('\n', start)
ip = line[start+13:endline]
cert = SSLmon(ip)
Col1 = ip
FCS2 = cert.find('commonName')
FCE2 = cert.find('/', FCS2)
FCS2b = cert.find('commonName')
FCE2b = cert.find('\n', FCS2b)
Colopt2 = cert[FCS2+11:FCE2]
Colopt2b = cert[FCS2b+11:FCE2b]
Col2 = cert[FCS2+11:FCE2] if len(Colopt2) < len(Colopt2b) else cert[FCS2b+11:FCE2b]
FCS3 = cert.find('Not valid after:')
FCE3 = cert.find('T', FCS3)
Col3 = cert[FCS3+18:FCE3].replace('-', '/')
column = Col1[n], Col2[n], Col3[n]
table.append[column]
text_file.closed
print(tabulate([table], headers=['IP Address', 'Common Name', 'Valid To']))
</code></pre>
<p>如果执行print(table)命令,则表数组本身将如下所示:</p>
<p>[['10.0.255.250','ex.example.com网站','2017/02/09',['10.0.255.251','localhost','2009/07/04',['10.0.255.252','例2.com','2016/05/24']]</p>