【发布时间】:2019-09-07 15:03:24
【问题描述】:
控制台一直告诉我这个,说缺少一个参数。
"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'
我正在尝试使用 python-docx 和 python 3.7 从 docx 文件中提取一些突出显示的(黄色)文本。
当我进入 Document func 时,__init__ 看起来像这样:
def __init__(self, element, part):
super(Document, self).__init__(element)
self._part = part
self.__body = None
那么这里,'part' 是干什么用的?
下面是提取函数和main函数:
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)
【问题讨论】:
-
就像错误所说的那样,您的 Document init 需要一个参数
part,您没有提供该参数;您只传递了一个参数,该参数被视为element参数。你需要同时通过。 -
so here, what is 'part' for?- 你写了那个类吗?如果不是,它的文档应该描述它 - 如果不是,您将不得不进一步研究该类以弄清楚 它的用途。
标签: python python-docx