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

我正在尝试根据 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 table

table = document.add_table(1, 4)

#style table

table.style = 'Table Grid'


#populate header row

heading_cells = table.rows[0].cells

heading_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 doc

document.save("test.docx")

幕后工作:


在 3 个单选按钮中是、否、N/a.. 只能选择一个。

接下来,当按下按钮save.. 它会在 中创建一个表docx,选项row 0与选择的值是、否和 N/a 一起向下附加。

举个例子:


Options       Yes      No     N/a

Option 1       *

Option 2               *

Option 3       *

我的问题:


我可以简单地按下save它并将文件保存为test.docx.


现在,我想弄清楚如何将文件另存为Failed.docx


仅当所有选项中的一个或多个选择了一个值Failed.docx时才会创建。no


作为下面的示例,这将保存为Test.docx,因为没有一个选项具有no选择的值:


Options       Yes      No     N/a

Option 1       *

Option 2                       *

Option 3       *

下面的示例将保存为Failed.docx,因为no已为左侧的选项之一选择了选项。


举个例子:


Options       Yes      No     N/a

Option 1       *

Option 2               *

Option 3       *

这是我到目前为止所尝试的:


for x in cells[2].text:

    if "*" in x:

        print("True")

    else:

        print("False")

*这在cell[2](这是链接到No值的第 2 行)内检测到。


鸿蒙传说
浏览 144回答 2
2回答

心有法竹

问题:'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

翻阅古今

尝试以下操作:for x in cells[2].text:    if "*" in x:        print("Failed.docx")    elif "*" not in x:        print("Test.docx")这将检查"*"您的no行内是否有任何内容,如果存在则另存为,Failed.docx如果不另存为Test.docx
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python