gpt4 book ai didi

python - 类型错误 : 'str' object is not callable with win32com interfacing with Attachmate

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:12 24 4
gpt4 key购买 nike

我正在使用 Python 尝试自动化 Attachmate - EXTRA!,类似于大多数人在 VBA 中的做法。

我正在使用发现的包 pywin32 here.我正在使用有关 OLE 如何与 Attachmate 配合使用的文档(其中可以找到 GetString 和 PutString 方法)here.

我的代码:

system = win32com.client.Dispatch("EXTRA.System")
sess0 = system.ActiveSession

product = sess0.screen.GetString(0, 1, 2)

产生错误:

line13: product = sess0.screen.GetString(1, 1, 2)
TypeError: 'str' object is not callable

据说 GetString 方法的语法为:rc = object.GetString (Row, Col, Length, [Page]) ,但是我在 Python 中尝试使用此语法会产生上面的错误。

我研究了这个错误,发现它相当于尝试执行以下操作:“mystring”()。这不应该是这样,因为当我检查 sess0 的类型时,它确实是: <class 'win32com.client.CDispatch'>

我知道这个问题可能源于语法与 Attachmate/OLE 页面上解释的不同。但是,PutString 方法被解释为具有以下语法: object.PutString String [,Row][,Col][,Page] ,但我使用以下命令使其工作正常: sess0.screen.PutString("90", 1, 79) 。该代码正确地将字符串“90”放置在我的 Attachmate session 中的位置 1, 79 处。

我很好奇这是否是软件包本身的问题。如果有人有尝试使用 Python 自动化 Attachmate 的经验,我们将不胜感激他们的帮助!

最佳答案

我使用这些函数在 Attachmate EXTRA 上读写!屏幕

尝试以下操作:

import win32com.client

def write(screen,row,col,text):
screen.row = row
screen.col = col
screen.SendKeys(text)


def read(screen,row,col,length,page=None):
if page is None:
return screen.Area(row, col, row, col+length).value
else:
return screen.Area(row, col, row, col+length, page).value


def test():
system = win32com.client.Dispatch("EXTRA.System")
sess0 = system.ActiveSession
screen = sess0.Screen

product = read(screen, 1, 1, 2)
print(product)
write(screen, 1, 79, "90")

文档:

Screen.Area(StartRow,StartCol,EndRow,EndCol[,Page][,Type])

SendKeys(String)

关于python - 类型错误 : 'str' object is not callable with win32com interfacing with Attachmate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40388219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com