如何在Python中基于if语句保存一个文档?

2024-02-04

我正在尝试根据 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 个单选按钮 Yes、No、N/a.. 中只能选择一个。
  • 接下来,当按下按钮时save..它创建了一个表docx, 选项在row 0与“是”、“否”和“不适用”的选定值一起向下追加。

举个例子:

Options       Yes      No     N/a
Option 1       *
Option 2               *
Option 3       *

我的问题:

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

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

The 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](这是第 2 行链接到No value).

如果选择了“否”值,它会打印出 true,但也会打印出 false

举个例子:

Options       Yes      No     N/a
Option 1       *
Option 2               *
Option 3       *

输出的for loop :

False
True
False

但如果它检测到False and True这两个文件都将被保存。我完全困惑从这里该去哪里..


Question: The 'Failed.docx'只会被创建if one or more出所有的options has a no选定的值。

这可以改写为:

     if any option has NO

你已经建立了一个list of Boolean从条件value == NO,
like [False, True, False]


  • Built-in - any https://docs.python.org/3/library/functions.html#any

    任意(可迭代)

    如果可迭代的任何元素为 true,则返回 True。如果迭代器为空,则返回 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')

Output:

[2, 0, 2]
test.docx

[2, 1, 2]
Failed.docx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中基于if语句保存一个文档? 的相关文章

随机推荐