2011-03-18 105 views
1

有没有办法将sys.stdout.write的输出添加到变量?或者有没有更好的方式来做我在jython中做的事情:将sys.stdout.write输出添加到变量

我有一个网址(“www.example.com/whateverpage.html”),我想创建一个变量,让我的脚本点击进入,因此最终结果必须是:

HtmlAnchor[<a href="www.example.com/whateverpage.html">] 

我尝试使用pageAnchor = 'HtmlAnchor[<a href="',PageLink,'">]' 但它没有工作,因为它输出的href和PageLink变量之间的空间。所以我觉得我很聪明(显然我远离:-),并使用stdout.write打印空间,但是当我在脚本中输出它看起来很完美,但是当我尝试将它保存到一个变量,然后打印我得到的变量(None,None,None)。

我想这样做的另一种方法是使用regexpressions摆脱的空间,但我需要“a”和“href”属性

之间的空间我敢肯定有一个简单的方法,我只是没有看到,任何人都可以给我任何指针.. 谢谢!

回答

3

也许你想pageAnchor = ''.join(['HtmlAnchor[<a href="',PageLink,'">]'])

或者干脆'HtmlAnchor[<a href="' + PageLink + '">]'

但它远未清楚,对我来说,你要完成的任务。

+0

非常感谢您Jcomeau。 ..那就是问题所在。我用来提取链接的软件(beautifulsoup)与我用来点击页面和导航(htmlunit)不一样。 – Lostsoul 2011-03-18 03:15:31

1

尝试简单的东西,format strings :)

>>> addr="www.example.com" 
>>> s = "HtmlAnchor[<a href=\"%s\">]" % addr 
>>> s 
'HtmlAnchor[<a href="www.example.com">]' 
>>> 
+0

非常感谢Sarnold的回答。我想我现在明白了。我不知道这个“%s”我会玩弄它。非常感谢你。 – Lostsoul 2011-03-18 03:21:20

+0

Lostsoul,'\“'只是因为你想在HTML输出中使用''''。它也可能是:'s =“HtmlAnchor”%addr“ - '''不需要双引号字符串中的引号。 – sarnold 2011-03-18 03:24:20

+1

格式化字符串的%风格被慢慢弃用,首选的新方法是使用格式化函数。 '“HtmlAnchor []”。format(addr)'。见[这里](http://docs.python.org/tutorial/inputoutput.html#fancier-output-formatting)获取更多信息 – JHSaunders 2011-03-18 03:41:51