On 06/10/2010 12:56 AM, Anthony Papillion wrote: > Hello Everyone, > > Thanks to help from this group, my statistical project is going very > well and I'm learning a LOT about Python as I go. I'm absolutely > falling in love with this language and I'm now thinking about using it > for nearly all my projects. > > I've run into another snag with nntplib I'm hoping someone can help me > with. I'm trying to get a list of newsgroups from the server. The > documentation for the list() method tells me it returns a response > (string) and a list (tuple). > > The list tuple contains the following: groupname, last, first, flag. > So, thinking I could access the group name in that list like this > ThisGroup = groupname[1]. > > Now, along those lines, I am wanting to retrieve some information > about each group in the list so I thought I could do this: >
Hi again ^^ Let's have a look at what your code actually does. I'm not going to check the docs myself just now. > resp, groupinfo = server.list() okay, looks fine. so groupinfo would, as per what you said earlier, be in this format: [ (groupname1, last1, first1, flag1), (groupname2, last2, first2, flag2), ... ] > group = (info[1] for info in groupinfo) Here, you're using a generator expression to create a generator object which will yield info[1] if you loop over it. So after this line you could do this: for x in group: print (x) and it would print every "last" field from above. info[1] is NOT the first item in info, but the second one, since Python sequences are zero-indexed. groupname would be info[0]. (it looks as though you might have forgotten this) > resp, count, first, last, name = server.group(group) Here, you're passing the generator object to the server.group method. It probably wasn't expecting that. > > But Python throws a TypeError and tells me I "can't concatenate str > and generator objects'. This almost certainly originated in the NNTPlib code. It expected the object you passed (a generator object) to be a string and did something like send("BEGINNING OF REQUEST LINE"+thing_I_got_passed) which, obviously, can't work if you don't pass a string (the group name is expected, I presume) So, what you probably want to do would look something like this: resp, groupinfos = server.list() for info in groupinfos: resp, count, first, last, name = server.group(info[0]) # do something with the info here. > > What am I doing wrong? I've been banging my head on this for a few > hours and simply can't get it right. I've even googled for an example > and couldn't find one that showed how to deal with this. > > Can anyone help? > > Thanks in advance! > Anthony -- http://mail.python.org/mailman/listinfo/python-list