最近在研究使用python操作word,偶然发现docx文档的路径问题。
一、问题描述
在使用相对路径的时候,无论使用哪种方法,当python的路径发生变化的时候,就无法正常打开docx文档。
但是奇怪的是,就算路径怎么变化,通过相对路径打开非word文档却是正常的。
如:with open('host.txt', 'r') as f:#这种正常
df=pd.read_excel('XXX.xlsx')#这种也正常
但是下面这种就不正常了。
MyWordApp = win32com.client.Dispatch('Word.Application') # alternately DispatchEx
MyWordApp.Visible=False
MyWord=MyWordApp.Documents.Open('XX证明.docx')
如果上述的路径,改为绝对路径,就正常,如
MyWord=MyWordApp.Documents.Open(r'd:\abc\XX证明.docx')
就算通过绝对路径变得正常了,我依然不想使用绝对路径,因为使用绝对路径,会导致程序没有任何的灵活性。
二、解决办法
如何不使用绝对路径也能让程序变得灵活呢?请使用下面的方法。
MyWordApp = win32com.client.Dispatch('Word.Application') # alternately DispatchEx
MyWordApp.Visible=False
MyWord=MyWordApp.Documents.Open(os.getcwd()+'\XX证明.docx')
是通过os.getcwd()这个来解决的。
现在问题虽然解决了。但是,我依然搞不明白,为什么docx文档不能直接使用相对路径,而其它类型的文件就可以呢?