diff --git a/tests/golden/pull2140.tsv b/tests/golden/pull2140.tsv new file mode 100644 index 000000000..4c5641188 --- /dev/null +++ b/tests/golden/pull2140.tsv @@ -0,0 +1,3 @@ +name rows cols id classes +table_0 0 0 test_empty +links 0 5 diff --git a/tests/pull2140.vdj b/tests/pull2140.vdj new file mode 100644 index 000000000..b20a78d04 --- /dev/null +++ b/tests/pull2140.vdj @@ -0,0 +1,2 @@ +#!vd -p +{"sheet": null, "col": null, "row": null, "longname": "open-file", "input": "sample_data/empty-table.html", "keystrokes": "o", "comment": null} diff --git a/visidata/loaders/html.py b/visidata/loaders/html.py index 509727f41..a950dea18 100644 --- a/visidata/loaders/html.py +++ b/visidata/loaders/html.py @@ -154,8 +154,11 @@ def iterload(self): if headers: it = itertools.zip_longest(*headers, fillvalue='') else: - it = list(list(x) for x in self.rows.pop(0)) - it += [''] * (ncols-len(it)) + if len(self.rows) > 0: + it = list(list(x) for x in self.rows.pop(0)) + it += [''] * (ncols-len(it)) + else: + it = [] for colnum, names in enumerate(it): name = '_'.join(str(x) for x in names if x)