我希望将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)执行相同的操作?
答案 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)