一、引言
Python中批量进行办公文档转化是常见的操作,在windows状态下我们可以利用changeOffice这个模块很快进行批量操作。
二、在Windows环境下的解决文案
Windows环境下,如何把doc转化为docx,xls转化为xlsx?
首先,我们要安装这个第三方模块,在cmd下输入
pip install changeOffice
其次,导入这个模块
from changeOffice import change
然后,要确定文件所在的位置
c = change(".") #如果是"."则表示当前位置
最后就可以进行展示转化了,这里为了简便我们把代码写在一起形成py文件
from changeOffice import change
path = "." #这里输入文件所在的咱径
c = change(path)
c. doc2docx() #把所有的doc文件转化为docx文件
c. xls2xlsx() #把所有的doc文件转化为docx文件
c. ppt2pptx() #把所有的doc文件转化为docx文件
今天网友提问,说自己的电脑不是windows的,如何把xls转化为xlsx, 把doc转化为docx呢,经过一番探索,发现在苹果电脑上用changeOffice的老方法是解决不了这个新问题的。
我们当然也可以用软件,或者在线网站进行转化,但这样都无法实现批量转化docx和xls的功能。文章来源:https://www.toymoban.com/news/detail-648487.html
三、MacOS下的解决方案
经过一番搜索,我们在网上找到了样例的代码,然后我们利用os.walk()的方法对目录下的所有文件进行遍历。最后我们把文件逐一进行转化。文章来源地址https://www.toymoban.com/news/detail-648487.html
1. MacOS下把doc批量转化为docx文件
import os
import subprocess
for 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 os
import subprocess
for 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),就是转化完会把原来的源文件进行删除,只保留转化后的文件。
- 进行批量转化前一定要进行备份,因为这个过程是不可逆转的。
到了这里,关于在Windows和MacOS环境下实现批量doc转docx,xls转xlsx的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!