我正在尝试根据 if 语句保存文档。在这里,我正在创建单选按钮:info = ["Option 1", "Option 2", "Option 3"]vars = []for idx,i in enumerate(info): var = IntVar(value=0) vars.append(var) lblOption = Label(main,text=i) btnYes = Radiobutton(main, text="Yes", variable=var, value=2) btnNo = Radiobutton(main, text="No", variable=var, value=1) btnNa = Radiobutton(main, text="N/A", variable=var,value=0) lblOption.grid(column=4,row=idx, sticky = W) btnYes.grid(column=1,row=idx) btnNo.grid(column=2,row=idx) btnNa.grid(column=3,row=idx)在这里我正在创建一个文档document = Document()#add tabletable = document.add_table(1, 4)#style tabletable.style = 'Table Grid'#populate header rowheading_cells = table.rows[0].cellsheading_cells[0].text = "Options"heading_cells[1].text = "Yes"heading_cells[2].text = "No"heading_cells[3].text = "N/a"for idx, item in enumerate(vars): cells = table.add_row().cells cells[0].text = info[idx] # gets the option name val = item.get() #radiobutton value if val == 2: # checks if yes cells[1].text = "*" elif val == 1: # checks if no cells[2].text = "*" elif val == 0: # checks if N/A cells[3].text = "*"#save docdocument.save("test.docx")幕后工作:在 3 个单选按钮中是、否、N/a.. 只能选择一个。接下来,当按下按钮save.. 它会在 中创建一个表docx,选项row 0与选择的值是、否和 N/a 一起向下附加。举个例子:Options Yes No N/aOption 1 *Option 2 *Option 3 *我的问题:我可以简单地按下save它并将文件保存为test.docx.现在,我想弄清楚如何将文件另存为Failed.docx仅当所有选项中的一个或多个选择了一个值Failed.docx时才会创建。no作为下面的示例,这将保存为Test.docx,因为没有一个选项具有no选择的值:Options Yes No N/aOption 1 *Option 2 *Option 3 *下面的示例将保存为Failed.docx,因为no已为左侧的选项之一选择了选项。举个例子:Options Yes No N/aOption 1 *Option 2 *Option 3 *这是我到目前为止所尝试的:for x in cells[2].text: if "*" in x: print("True") else: print("False")*这在cell[2](这是链接到No值的第 2 行)内检测到。
2 回答

心有法竹
TA贡献1866条经验 获得超5个赞
问题:'Failed.docx'只会在if one or more所有options具有no选定值的情况下创建。
这可以改写为:
if any option has NO
你已经从条件中构建了list一个, 比如Booleanvalue == NO
[False, True, False]
内置 - 任何
任何(可迭代)
如果可迭代的任何元素为真,则返回真。如果可迭代对象为空,则返回 False。
YES = 2; NO = 1; NA = 0
print(vars)
if any([v.get() == NO for v in vars]):
print('Failed.docx')
else:
print('test.docx')
输出:
[2, 0, 2]
test.docx
[2, 1, 2]
Failed.docx

翻阅古今
TA贡献1780条经验 获得超5个赞
尝试以下操作:
for x in cells[2].text:
if "*" in x:
print("Failed.docx")
elif "*" not in x:
print("Test.docx")
这将检查"*"您的no行内是否有任何内容,如果存在则另存为,Failed.docx如果不另存为Test.docx
添加回答
举报
0/150
提交
取消