<pre><code>with open("vpn.txt") as f:
for index, (line1, line2) in enumerate(zip(f, f), start=1):
peer_ip = line1.split()[-1]
cipher_suite = line2.split()[-1]
print(index, peer_ip, cipher_suite, sep=', ')
</code></pre>
<p>参见问题<a href="https://stackoverflow.com/questions/1657299/how-do-i-read-two-lines-from-a-file-at-a-time-using-python">How do I read two lines from a file at a time using python</a></p>
<p>这只是每行的最后一个字,一次两行。您还需要执行一些错误检查,如</p>
<pre><code>if "peer" not in line1.split():
raise ValueError(f'Line {index} doesn\'t contain the word "peer", but it should: {line1}')
</code></pre>
<p>或者试图<a href="https://stackoverflow.com/questions/319279/how-to-validate-ip-address-in-python">parse ^{<cd1>} as an IP address</a></p>
<pre><code>import ipaddress
def is_valid_ip_address(text):
try:
ipaddress.ipaddress(text)
return True
except ValueError:
return False
with open("vpn.txt") as f:
for index, (line1, line2) in enumerate(zip(f, f), start=1):
peer_ip = line1.split()[-1]
cipher_suite = line2.split()[-1]
if not is_valid_ip_address(peer_ip):
raise ValueError(
f'Line couldn\'t parse "{peer_ip}" as an IP address on line {index}'
)
print(index, peer_ip, cipher_suite, sep=", ")
</code></pre>