我试图从文本文件中使用IP获取主机名,但我无法从文本文件中读取所有IP,输出只显示一个IP。
以下是我的COED,
import os
import socket
with open('ips.txt', 'r') as f:
for line in f.read().strip('\n'):
ip = line.strip()
b = socket.getfqdn(ip)
print b
感谢。
答案 0 :(得分:1)
问题在于:
for line in f.read().strip('\n'):
这会迭代整个文件内容(f.read()
)而不会跟踪\n
。字符串是Python中的迭代,所以基本上你只是迭代文本文件的每个字符。
相反,由于文件对象是可迭代的,您可以逐行进行迭代并获取相关的FQDN:
with open('ips.txt', 'r') as f:
for line in f:
ip = line.strip()
fqdn = socket.getfqdn(ip)
# print(fqdn) # Python 3
print fqdn # python 2