如何在Win 7操作系统的python程序中使用pywin32库的组件?(假设使用python 2.7版本)

0 投票
1 回答
2272 浏览
提问于 2025-04-18 03:03

这是我想用Cygwin在Windows 7上执行的示例代码,目的是在AutoCad图纸中进行简单的文本搜索和替换:

import sys
import win32com.client
from sys import argv
from win32com.client import Dispatch
acad = win32com.client.Dispatch("AutoCAD.Application")

doc = acad.ActiveDocument   # Document object
ms = doc.ModelSpace         # Modelspace "collection"
count = ms.Count            # Number of items in modelspace

for i in range(count):
    item = ms.Item(i)
    if 'text' in item.ObjectName.lower(): # Text objects are AcDbText
        # once we know what it is we can cast it
        text = win32com.client.CastTo(item, "IAcadText") 
        if text.TextString == "Spam":
            text.TextString = "Maps"
            text.Update()import win32com.client
acad = win32com.client.Dispatch("AutoCAD.Application")

doc = acad.ActiveDocument   # Document object
ms = doc.ModelSpace         # Modelspace "collection"
count = ms.Count            # Number of items in modelspace

for i in range(count):
    item = ms.Item(i)
    if 'text' in item.ObjectName.lower(): # Text objects are AcDbText
        # once we know what it is we can cast it
        text = win32com.client.CastTo(item, "IAcadText") 
        if text.TextString == "Spam":
             text.TextString = "Maps"
             text.Update()

1 个回答

1

我觉得你可能做不到这一点,因为pywin32和Cygwin不兼容。

你可以查看这个链接了解更多信息:http://sourceforge.net/p/pywin32/mailman/pywin32-bugs/thread/From_noreply@sourceforge.net_Fri_May_10_22:50:41_2013/

你可以通过安装一个非Cygwin的Python来解决这个问题,比如ActiveState、WinPython或者类似的版本。

撰写回答