在Windows和MacOS环境下实现批量doc转docx,xls转xlsx
短信预约 -IT技能 免费直播动态提醒
一、引言
Python中批量进行办公文档转化是常见的操作,在windows状态下我们可以利用changeOffice这个模块很快进行批量操作。
二、在Windows环境下的解决文案
Windows环境下,如何把doc转化为docx,xls转化为xlsx?
首先,我们要安装这个第三方模块,在cmd下输入
pip install changeOffice
其次,导入这个模块
from changeOffice import change
然后,要确定文件所在的位置
c = change(".") #如果是"."则表示当前位置
最后就可以进行展示转化了,这里为了简便我们把代码写在一起形成py文件
from changeOffice import changepath = "." #这里输入文件所在的咱径c = change(path)c. doc2docx() #把所有的doc文件转化为docx文件c. xls2xlsx() #把所有的doc文件转化为docx文件c. ppt2pptx() #把所有的doc文件转化为docx文件
今天网友提问,说自己的电脑不是windows的,如何把xls转化为xlsx, 把doc转化为docx呢,经过一番探索,发现在苹果电脑上用changeOffice的老方法是解决不了这个新问题的。
我们当然也可以用软件,或者在线网站进行转化,但这样都无法实现批量转化docx和xls的功能。
三、MacOS下的解决方案
经过一番搜索,我们在网上找到了样例的代码,然后我们利用os.walk()的方法对目录下的所有文件进行遍历。最后我们把文件逐一进行转化。
1. MacOS下把doc批量转化为docx文件
import osimport subprocessfor root, folders, files in os.walk("."): for file in files: if file.endswith(".doc"): file_path = os.path.abspath(os.path.join(root, file)) path = os.path.dirname(file_path) subprocess.run(["/Applications/LibreOffice.app/Contents/MacOS/soffice", "--headless", "--convert-to", "docx", file_path, "--outdir", path]) os.remove(file_path)print('Success!')
2. MacOS下把xls批量转化为xlsx文件
import osimport subprocessfor root, folders, files in os.walk("."): for file in files: if file.endswith(".xls"): file_path = os.path.abspath(os.path.join(root, file)) path = os.path.dirname(file_path) subprocess.run(["/Applications/LibreOffice.app/Contents/MacOS/soffice", "--headless", "--convert-to", "xlsx", file_path, "--outdir", path]) os.remove(file_path)print('Success!')
四、学后反思
- 源码中我增加了一个os.remove(file_path),就是转化完会把原来的源文件进行删除,只保留转化后的文件。
- 进行批量转化前一定要进行备份,因为这个过程是不可逆转的。
来源地址:https://blog.csdn.net/henanlion/article/details/132285407
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341