Short answer: set the cell width separately.
for cell in table_columns[0].cells:
cell.width = Inches(0.5)
python-docxdoes what you say when you set the column width. The problem is that Word ignores this. Other clients, such as LibreOffice, respect the column width setting.
A .docx XML (, "x" ). XML . , , . , , . , , , . , , :
def set_col_widths(table):
widths = (Inches(1), Inches(2), Inches(1.5))
for row in table.rows:
for idx, width in enumerate(widths):
row.cells[idx].width = width
, , , Word ; .