Python:从tk.Text获取URL列表并处理它们

时间:2014-10-13 12:26:23

标签: python python-2.7 urllib2

我希望将URL作为列表写入tk.Text小部件,并使用urllib2一个接一个地系统地处理它们。

我已经编写了下面的代码,但它不起作用。我试图理解这个问题,似乎至少有一个问题是,无论tk.Text小部件中有多少行文本,tk.Text.get()方法都会将它们作为单个元素进行检索。如果我在窗口小部件中写入3行文本,然后调用UrlBatchList.count(Urls),我可以看到该列表只有一个元素。

def GetBatch(self):
        UrlBatchList = []
        Urls = self.BatchEntryText.get(index1='1.0', index2='end')
        UrlBatchList.append(Urls)

        for Urls in UrlBatchList:
                self.url_target = (Urls)
                self.request = urllib2.Request(self.url_target)
                self.req = urllib2.urlopen(self.request)

如何将各行文本检索为要添加到列表中的单个元素? 如何对用逗号(,)分隔的元素(url)执行相同的操作?

1 个答案:

答案 0 :(得分:1)

你是对的:当你打电话给get时,它会返回一个字符串。由于您说网址是每行一个,因此只需在换行之前将数据拆分为换行符。

Urls = self.BatchEntryText.get(index1='1.0', index2='end-1c').split('\n')

此外,您应该使用'end-1c'而不是'end'。这是因为tkinter总是在最后一个字符后面添加一个换行符,你通常不想检索它。

最后,当您要追加第二个列表的每个元素时,请使用extend而不是append。如果您使用append,则将整个列表作为单个列表添加到原始列表中。

UrlBatchList.extend(Urls)