如何修复“TypeError:yu init_u9()缺少1个必需的位置参数:python中的“part”错误

2024-04-19 16:17:03 发布

您现在位置:Python中文网/ 问答频道 /正文

控制台一直在告诉我,说缺少一个参数。在

"D:\Program Files (x86)\Python\python.exe" D:/workspace/Glossary_Builder_Python/main.py
Please input the file path
C:\Users\Administrator\Desktop\Allergies.docx
Traceback (most recent call last):
  File "D:/workspace/Glossary_Builder_Python/main.py", line 102, in <module>
    main(sys.argv)
  File "D:/workspace/Glossary_Builder_Python/main.py", line 98, in main
    extractWdFrmDocx(filepath)
  File "D:/workspace/Glossary_Builder_Python/main.py", line 18, in extractWdFrmDocx
    document = Document(file)
TypeError: __init__() missing 1 required positional argument: 'part'

我试图使用pythondocx和python3.7从docx文件中提取一些突出显示的(黄色的)文本。 进入Document func时,__init__如下所示:

^{pr2}$

那么在这里,什么是“部分”?在

以下是提取功能和主要功能:

def extractWdFrmDocx(filepath):
    # self.filepath = filepath
    document = Document(filepath)
    for para in document.paragraphs:
        for run in para.runs:
            if run.font.highlight_color == WD_COLOR_INDEX.YELLOW:
                keyText.append(run.text)
    print(keyText)


def main(argv):
    print("Please input the file path")
    filepath = input()
    extractWdFrmDocx(filepath)


if __name__ == "__main__":
    main(sys.argv)

Tags: inpyinputmainbuilderlinedocumentworkspace
1条回答
网友
1楼 · 发布于 2024-04-19 16:17:03

可能是您从docx.document导入了Document。{cd1>你不应该直接构造这样的对象。相反,用于创建Document对象的函数被提供为docx.Document,它需要一个参数,就像您现在使用它的方式一样。在

因此,您的代码应该是:

import docx

[...]

document = docx.Document(filepath)

From documentation of python-docx:

Document objects

class docx.document.Document

[...]

Not intended to be constructed directly. Use docx.Document() to open or create a document.

相关问题 更多 >