我很难弄清楚如何让python对我的文本文件中的每个IP地址进行DNS查找。我得到一个TypeError:getaddrinfo()参数1必须是字符串或无。任何人都可以帮忙吗?
class PostsController < ApplicationController
def index
@posts = Post.all.order("created_at DESC")
end
def new
@post = Post.new
end
def create
if current_user
@post.user_id = current_user.id
end
@post= Post.new(post_params)
if @post.save
redirect_to @post
else
render 'new'
end
end
def show
@post = Post.find(params[:id])
end
def edit
@post = Post.find(params[:id])
end
def update
@post = Post.find(params[:id])
if @post.update(post_params)
redirect_to @post
else
render 'edit'
end
end
def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to posts_path
end
private
def post_params
params.require(:post).permit(:title, :body, :theme)
end
end
答案 0 :(得分:1)
当您需要迭代文件迭代器并将字符串传递给函数时,您将file
可迭代对象作为参数直接传递给socket.getaddrinfo
。假设每行包含一个IP:
with open('output.txt') as f:
for ip in f:
out = socket.getaddrinfo(ip, 0)
...
注意:
自动使用with open...
上下文管理器close()
文件对象,即使出现错误也无需显式调用close()
默认情况下open()
以读取(r
)模式打开文件,因此指定r
是多余的,不会伤害BTW。