TypeError:“str”对象不可使用带附件的win32com接口调用

2024-09-29 17:17:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python来尝试自动化附件-额外!,类似于大多数VBA中的do。在

我正在使用pywin32找到的包here. 我使用的是OLE如何使用Attachmate的文档(在这里可以找到GetString和PutString方法)here.

我的代码:

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

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

产生错误:

^{pr2}$

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

我研究过这个错误,发现它相当于尝试去做:“mystring”()。这不应该是,因为当我检查sess0的类型时,它确实是一个:<class 'win32com.client.CDispatch'>。在

我知道这个问题可能是因为语法与附件/OLE页面上解释的不同。但是,PutString方法被解释为具有以下语法:object.PutString String [,Row][,Col][,Page],但是我使用了:sess0.screen.PutString("90", 1, 79)使它工作得很好。该代码正确地将字符串“90”放在附件会话中的位置179。在

我很好奇这是否是包裹本身的问题。如果有人有尝试用Python自动附加的经验,他们的帮助将是非常感谢的!在


Tags: 方法代码client附件hereobject错误语法
1条回答
网友
1楼 · 发布于 2024-09-29 17:17:25

我用这些函数读写附加附件!屏幕

尝试以下操作:

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)

相关问题 更多 >

    热门问题