用Python的方式有条件地遍历列表中的项目

一般来说,这是编程的新手,所以我可能会以错误的方式进行操作.我正在编写一个lxml解析器,在这里我想省略解析器输出中没有内容的HTML表行.这就是我得到的:

for row in doc.cssselect('tr'):
    for cell in row.cssselect('td'):
        sys.stdout.write(cell.text_content() + '\t')
    sys.stdout.write '\n'

write()是临时的.我想要的是循环只返回tr.text_content!=”的行.因此,我想我想问的是如何写出我的大脑认为“如果a = x,则对于a in b”应该写的内容,但这是行不通的.

谢谢!

解决方法:

for row in doc.cssselect('tr'):
    cells = [ cell.text_content() for cell in row.cssselect('td') ]
    if any(cells):
        sys.stdout.write('\t'.join(cells) + '\n')

仅当至少有一个包含文本内容的单元格时才打印该行.

上一篇:python-lxml和in


下一篇:python中的lxml xpath,如何处理丢失的标签?