我正在做一个小的python脚本来执行wget调用,但是当我替换包含url / ip地址的字符串并且它将被赋予我的“wget”字符串
import os
import sys
usr = sys.argv[1]
pswd = sys.argv[2]
ipAddr = sys.argv[3]
wget = "wget http://{IPaddress}"
wget.format(IPaddress=ipAddr)
print "The command wget is %s" %wget
os.system(wget)
如果我运行该脚本,我得到下面的代码段,我知道wget失败了,因为变量ipAddr没有替换IPaddress模式,所以我猜这个问题与url中的斜杠有关。我的问题是为什么不替换这种模式?
python test.py 1 2 www.website.org The command wget is wget http://{IPaddress}
--2015-12-03 20:26:11-- http://%7Bipaddress%7D/
Resolving {ipaddress} ({ipaddress})... failed: Name or service not known.
答案 0 :(得分:3)
您没有将format
电话的结果分配给任何内容 - 您只是将其丢弃。试试这个:
wget = "wget http://{IPaddress}"
wget = wget.format(IPaddress=ipAddr)
print "The command wget is %s" %wget
os.system(wget)
或者,这似乎有点清洁:
wget = "wget http://{IPaddress}".format(IPaddress=ipAddr)
print "The command wget is %s" %wget
os.system(wget)
答案 1 :(得分:1)
您需要像这样格式化wget
字符串。
import os
import sys
usr = sys.argv[1]
pswd = sys.argv[2]
ipAddr = sys.argv[3]
wget = "wget http://{IPaddress}".format(IPaddress=ipAddr)
print "The command wget is %s" % wget
os.system(wget)
.format()
不会修改字符串,它会返回已修改字符串的副本,因此在原始脚本中,wget.format(IPaddress=ipAddr)
的值实际上从未实际分配给任何变量和内容wget
变量保持不变