首页 > 其他分享 >pywin32:批量将doc文件转为docx

pywin32:批量将doc文件转为docx

时间:2024-03-14 14:34:53浏览次数:29  
标签:__ docx doc py pywin32 import 目录

学习自:python批量把doc文件转换成docx_python批量将doc转docx-CSDN博客

目的:将某个目录下(包括子目录)中的所有doc转为docx

import os
import docx
import win32com.client as win32

url='D:\规范文档'
word=win32.Dispatch('Word.Application')
for root,dir2,files in os.walk(url): #遍历目录url
    for file in files:
        fr=os.path.join(root,file) #fr为文件的完整路径
        fn,ex=os.path.splitext(file) #提取文件名和后缀
        if ex=='.doc':
            doc=word.Documents.Open(fr)
            fr+='x' #后缀改为docx
            doc.SaveAs(fr,12,False,'',True,False,False,False,False)
            doc.Close() #不关闭的话会打开很多文件窗口

期间遇到的一系列问题

1、ImportError:DLL load filed

解决方法:菜单栏→Run→Edit Configuration→Environment Variables→新建一项:

name为path

Value为python.exe所在的目录下的Lib目录下的pywin32_system32目录(实在找不到这个目录可以在Lib用搜索的方式找找这个目录在哪)

2、ImportError:cannot import name 'winerror' 或ModuleNotFoundError: No module named 'win32api'

去报错的这个__init__.py中,把import winerror语句改为from . import winerror。

然后把win32目录下的winerror.py复制到__init__.py同级目录下。

对于所有的cannot import name,都可用这种做法做,即把win32包中的同名py或pyd文件复制到__init__.py的同级目录下。再改import语句为from . import module名即可。

3、no model named pywintypes、no module named win32com.client、ImportError: cannot import name 'client'

解决方法同2,找到pywintypes.py或pyd文件(如果是client,就把client这个目录复制过去),把它复制到__init__.py同级目录下。

去报错的这个__init__.py中,把import winerror语句改为from . import pywintypes。

4、在cmd中用Python可以import某个module,但是在pycharm的terminal中却不行

一般是pycharm的Terminal配置有问题,File→Settings→Tools→Terminal,修改Start Directorypython.exe所在的目录即可。

标签:__,docx,doc,py,pywin32,import,目录
From: https://www.cnblogs.com/ShineLeBlog/p/18072772

相关文章

  • docker实战(1)
    docker搭建mysql一,搭建docker环境二,Docker安装mysql1,查看mysql版本:dockersearchmysql2,安装指定mysql版本或安装最新版本dockerpullmysql:5.8或dockerpullmysql:latest3,查看本地镜像中是否已安装好mysql镜像:dockerimages4,运行容器启动mysql服务dockerrun-itd......
  • docker的使用方法
    一、docker安装Docker官方文档|DockerDocumentation1.自动安装wgethttp://fishros.com/install-Ofishros&&sudobashfishros2.手动安装2.1.ubuntu安装1.系统需求UbuntuJammy22.04(LTS)UbuntuImpish21.10UbuntuFocal20.04(LTS)UbuntuBionic18.04......
  • 从零开始写 Docker(六)---实现 mydocker run -v 支持数据卷挂载
    本文为从零开始写Docker系列第六篇,实现类似docker-v的功能,通过挂载数据卷将容器中部分数据持久化到宿主机。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大致认识:核心原理:深入理解Docker核心原理:Namespace、Cgr......
  • 使用 docker-easyconnect
    使用docker-easyconnectdocker-easyconnect是EasyConnect和aTrust运行在docker中的版本使用非常简单解决如下问题:1解决了软件对物理机的更改以及监控2可以在linux服务器上部署了注意:该项目为第三方开源非官方提供一行docker命令启动dockerrun--rm--device/de......
  • docker-compose部署prometheus+grafana进行服务器监控
    1、创建prometheus【prometheus.yml】配置global:scrape_interval:15sevaluation_interval:15sscrape_configs:-job_name:'prometheus'static_configs:-targets:['192.168.2.216:9090']ViewCode2、创建【docker-com......
  • 使用Docker部署带密码验证的Redis
    使用Docker部署Redis时使用的是默认配置文件不带鉴权需要鉴权可以把设置写到配置文件后通过Dockerfile生成新的镜像redis配置文件#catredis.confbind0.0.0.0port6379timeout0tcp-keepalive300daemonizenodatabases16save9001save30010save6010000#......
  • docker系列-报错以及解决指南
    1.windows运行docker报错WindowsHypervisorisnotpresentDockerDesktopisunabletodetectaHypervisor.HardwareassistedvirtualizationanddataexecutionprotectionmustbeenabledintheBIOS.DockerDesktop-WindowsHypervisorisnotpresentDockerDeskto......
  • zabbix-server-pgsql docker镜像说明
    0说明zabbix-server-pgsql在dockerhub的官方说明,供查阅1EnvironmentVariables1.1基本变量Whenyoustartthezabbix-server-pgsqlimage,youcanadjusttheconfigurationoftheZabbixserverbypassingoneormoreenvironmentvariablesonthedockerruncomm......
  • docker部署nginx
    1拉取nginx镜像dockerpullnginx2部署nginx方式一:直接部署dockerrun-id--namenginx-p80:80nginx方式二:映射index.html部署#在root文件夹下创建html文件夹mkdirroot#进入html文件夹创建index.html文件cdhtmlvimindex.html#自定义首页内容'''<h1>......
  • dock迁移备份(自定义镜像)
    1运行一个centos容器dockerrun-id--namecentos_vimcentos:centos72在容器中装vimdockerexec-ita6e240/bin/bashyuminstallvim-y3把容器做成镜像(centos+vim)dockercommitcentos_vimcentos_vim_image4把centos_vim容器删除dockerrmcentos_vim-f......