Python简单字符串格式错误

时间:2012-06-18 16:23:42

标签: python string

这是我的脚本,它应该解析.txt文件中的域列表(每个域由返回分隔),将它们分成单独的域名,向具有域名的whois站点发送请求,检查响应查看它是否可用,如果可用,将其写入新文件。所以我得到了一个只有可用名字的列表。

问题?这很简单,我只是不太了解语言,我不知道如何以字符串格式获取域名,以便对whois网站的请求是这样的:

http://whois.domaintools.com/google.com

显然%s的东西不起作用。

代码:

#!/usr/bin/python
import urllib2, urllib
print "Domain Name Availability Scanner."
print "Enter the Location of the txt file containing your list of domains:"
path = raw_input("-->")

wordfile = open(path, "r")
words = wordfile.read().split("n")
words = map(lambda x: x.rstrip(), words)
wordfile.close()

for word in words:
    req = urllib2.Request("http://whois.domaintools.com/%s") % (word)
    source = urllib2.urlopen(req).read()
    if "This domain name is not registered" in source:
    f = open("success.txt", "a")
    f.write("%s\n") % (word)
    f.close()
  break
终端

错误

python domain.py
Domain Name Availability Scanner.
Enter the Location of the txt file containing your list of domains:
-->a.txt
Traceback (most recent call last):
  File "domain.py", line 13, in <module>
    req = urllib2.Request("http://whois.domaintools.com/%s") % (word)
TypeError: unsupported operand type(s) for %: 'instance' and 'str'

3 个答案:

答案 0 :(得分:5)

修正括号:

req = urllib2.Request("http://whois.domaintools.com/%s" % (word))

以及:

f.write("%s\n" % word)

:)

答案 1 :(得分:2)

您需要使用:

req = urllib2.Request("http://whois.domaintools.com/%s" % word)
# ...
f.write("%s\n" % word)

答案 2 :(得分:2)

使用:

f.write("%s\n" % word)

查看此链接,它应说明此格式的工作原理:http://docs.python.org/release/2.5.2/lib/typesseq-strings.html