CYHunparalleled 2023-10-06 14:34 采纳率: 33.3%
浏览 45
已结题

python读取word文件出现问题

求各位哥指点!!
我目前有很多个word文档,我想要把这些word文档里的数据全部读取出来并整合到同一个txt文件中,我是使用os库和python-docx库,但是我的代码出现了问题,我不知道它是说找不到文件还是什么,但是我明明是有这些文件的,所有的word文档我都存在同一个文件夹了
(我这些word文档原本是doc格式,然后我用wps把全部文件都转化成了docx格式,然后我卸载wps就打开不了我转化好的docx格式的word文件了,我想这个是不是可能跟我的代码出错有关系。)
以下是我的代码和出现的错误:

img

img

img

当我将代码改成如下形式的时候,没有报错,但是只有start_word_file函数读取的文件,merge_word_files没有读取到文件夹'zhengce'里面的word文件,以下是修改后代码:

img

  • 写回答

9条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-10-13 16:21
    关注
    获得1.05元问题酬金

    引自强大而免费的微信小程序:皆我百晓生。如有帮助,还望采纳。


    当使用python-docx库读取docx文件时,确保文件的路径是正确的,并注意文件名及扩展名的大小写。以下是一个示例代码,可以读取指定文件夹中的所有docx文件,并将内容写入同一个txt文件中:

    import os
    from docx import Document
    
    def read_word_files(folder_path, output_file):
        with open(output_file, 'w', encoding='utf-8') as output:
            for filename in os.listdir(folder_path):
                if filename.endswith('.docx'):  # 只处理docx文件
                    file_path = os.path.join(folder_path, filename)
                    try:
                        document = Document(file_path)
                        output.write('\n')  # 将不同文件的内容用空行分隔
                        output.write(f"------{filename}------\n")
                        for paragraph in document.paragraphs:
                            output.write(paragraph.text)
                            output.write('\n')
                    except Exception as e:
                        print(f"读取文件 {file_path} 出错: {str(e)}")
    
    folder_path = 'path/to/folder'  # 更改为包含word文件的文件夹路径
    output_file = 'path/to/output.txt'  # 输出文件路径及文件名
    
    read_word_files(folder_path, output_file)
    

    将代码中的'path/to/folder'和'path/to/output.txt'更改为你的实际文件夹路径和输出文件路径。运行代码后,它将读取文件夹中的所有docx文件,将内容写入output.txt文件中。如果遇到无法打开的docx文件,它将在控制台打印出错信息,并继续处理其他文件。整合后的内容在txt文件中是以文件名分隔的,每个段落占一行。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 修改了问题 10月13日
  • 修改了问题 10月12日
  • 赞助了问题酬金15元 10月12日
  • 展开全部