python创建与pdf同名的doc文件

来源:互联网 发布:维基百科中文版数据库 编辑:程序博客网 时间:2024/06/05 07:27

自己产生的一个小需求,最近需要对看过的pdf文件注释,所以就存储在同名doc文件里面好找一些,不想建立了,所以就用python写了个小文件,折腾了好久才知道哪里出错了,希望自己以后能记住,而且代码功能还不是很完善,先放在这里吧。

最重要的两篇参考网址:

使用python来控制ms word

使用python遍历文件夹存储word为html文件

目前的最终代码如下:

#!usr/bin/pythonimport sys,osfrom win32com import client as wcword = wc.Dispatch('Word.Application')def createdocfrompdf(dir,old,new):if old[:1]!='.':old='.'+oldthelen=-len(old)print thelenif new[:1]!='.':new='.'+newfor path,subdirs,files in os.walk(dir) :for oldfile in files :if oldfile[thelen:]==old:print oldfileoldfile=os.path.join(path,oldfile)# newfile=os.path.normcase(oldfile[:thelen]+new)newfile=oldfile[:thelen]+newprint newfile# doc=open(newfile)doc = word.Documents.Add()doc.SaveAs(newfile)word.Quit()if len(sys.argv)!=4:    print "Usage:root dir old new"    sys.exit(100)createdocfrompdf(sys.argv[1],sys.argv[2],sys.argv[3])

使用了pywin32模块,下载地址在pywin32 注意要找到针对自己电脑的版本,比如我的是32位xp python 2.7.3,折腾了这么久呢,主要的原因是一直找不到文件,一开始我以为是中文文件名的问题,搞utf8和gbk编码搞了好久发现还是不行,后来才发现word.Documents.Open函数只是打开已存在的文件,那么就查到了Document.Add命令,即生成新文件,生成新文件不能直接用os.rename,因为rename是直接对字符串进行操作,所以我就直接将生成的文档saveas就可以了

这里是坛里一个处理中文文件名的讨论,没有仔细研究,有兴趣的大家可以看看

python处理中文文件名 中文路径

使用方法

python a.py "E:\My Documents\" pdf doc

当然目前我还是有一个疑问没有解答,毕竟很久没有碰python程序了,就是我在cmd控制台下直接在文件所在路径下进入python环境,居然说找不到a.py,即我运行
a.py "E:\My Documents\" pdf doc

居然提示我找不到a.py文件 很囧 或者在"E:\My Documents\" 下说invalid syntax,我想这种问题可能大家都解决过吧,所以google也没有找到过对应的答案,很希望有人能解答。
O ,关于要增加的功能,比如检测是否已经存在同名文件等等
原创粉丝点击