为了账号安全,请及时绑定邮箱和手机立即绑定

如何根据 Python 中的 if 语句保存一个文档?

如何根据 Python 中的 if 语句保存一个文档?

鸿蒙传说 2022-06-28 17:13:14
我正在尝试根据 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


查看完整回答
反对 回复 2022-06-28
?
翻阅古今

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


查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号