一般来说,这是编程的新手,所以我可能会以错误的方式进行操作.我正在编写一个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')
仅当至少有一个包含文本内容的单元格时才打印该行.