Py学习  »  问与答

新手学习python,遇到了灵异现象....同样的代码,隔夜运行突然报错。求教各位!

一辉 • 6 年前 • 1583 次点击  

程序如下。。是一个简单的处理word页眉的脚本。该用例我跑了3、4天,都没出过问题。最近好像是win10系统升级了,我重装过一次office2013,但截至昨晚都是好的。。。今早起来报错。 感谢各位!!帮忙看一下到底是那里出错了?

#coding:utf-8
import win32com
from win32com.client import Dispatch, constants

w = win32com.client.Dispatch('Word.Application')
doc = w.Documents.Open('D:/qq/1.docx')
myRange = doc.Range(0,0)
myRange.InsertBefore('Hello from Python!')
w.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()
w.ActiveDocument.Sections[0].Headers[0].Range.Find.Replacement.ClearFormatting()
w.ActiveDocument.Sections[0].Headers[0].Range.Find.Execute('22', False, False, False, False, False, True, 1, False, '11', 2)
# 保存文件
doc.SaveAs('D:/qq/1.docx')
#关闭文件
doc.Close()
#关闭Application
w.Quit()

==========错误信息,

Traceback (most recent call last):
  File "C:\Users\jiaze\Desktop\99.py", line 9, in <module>
    w.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()
  File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 473, in __getattr__
    raise AttributeError("'%s' object has no attribute '%s'" % (repr(self), attr))
AttributeError: '<win32com.gen_py.Microsoft Word 15.0 Object Library.Sections instance at 0x102718920>' object has no attribute '__getitem__'
[Finished in 2.5s with exit code 1]
[shell_cmd: python -u "C:\Users\jiaze\Desktop\99.py"]
[dir: C:\Users\jiaze\Desktop]
[path: C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Oracle\Java\javapath;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\jiaze


    
\AppData\Local\Microsoft\WindowsApps;;D:\Program Files (x86)\Fiddler;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps]
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4779
 
1583 次点击  
文章 [ 3 ]  |  最新文章 6 年前
Py站长
Reply   •   1 楼
Py站长    6 年前

@一辉

你先找一台和你以前的环境一样的机器试跑下,排除环境问题。

另外,如果可以的话,可以单步调试进去下,看下具体是什么原因引起的

Py站长
Reply   •   2 楼
Py站长    6 年前

w.ActiveDocument.Sections[0].Headers[0].Range.Find.ClearFormatting()

这句话出错了,

win32com.gen_py.Microsoft Word 15.0 这个是指office2003,

有可能是环境问题引起的,我基本是在linux下编程,对windows不熟啊

一辉
Reply   •   3 楼
一辉    6 年前

@Py站长 求助。。。。