python如何抓取当前运行软件的输入框?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何抓取当前运行软件的输入框?相关的知识,希望对你有一定的参考价值。

已经有了一个exe程序,其中有一个输入框,我想当那个输入框输入一个字符串的时候,python程序自动获取内容,然后从另一个表格中间找到对应的字符串2,填入exe程序里面,求高手讲一讲思路。
(也不一定用python,其它语言也可以,有实现的思路就可以)

参考技术A 算办公自动化的一个应用。
先获取窗口的句柄 >>遍历窗口下的所有控件>>通过输入框的特征,比如标识名称,找到对应的输入框>>操作输入框属性>>处理获取新字符串>>通过sendpost返回给另一个输入框

如何输入多索引熊猫数据框 Python3.8+ 的提示?

【中文标题】如何输入多索引熊猫数据框 Python3.8+ 的提示?【英文标题】:How to type hinting of multi-indexed pandas dataframe, Python3.8+? 【发布时间】:2021-12-01 08:44:18 【问题描述】:

数据框df的列是多索引的。

>>>df
    c1      c2    
    d1  d2  d1  d2
r1  11  12  21  22

因此,使用代码list(df.columns.levels[0] 创建list['c1', 'c2']。以下代码可以正常运行。但是 PyCharm 在print(list(df.columns.levels[0])) 行中将levels 标记为警告Unresolved attribute reference 'levels' for class 'Index'

我认为这可以通过print_columns 的函数签名中更具体的类型提示来解决。在下面的代码中,我只使用了df: pd.DataFrame 类型。 PyCharm 认为它是一个没有多索引的简单数据框。

你能告诉我如何改进类型提示吗?或者您有其他解决方案可以从 PyCharm 中删除警告吗?

谢谢。

import pandas as pd


def get_df() -> pd.DataFrame:
    data = 
        ('c1', 'd1'): [11],
        ('c1', 'd2'): [12],
        ('c2', 'd1'): [21],
        ('c2', 'd2'): [22],
    

    df = pd.DataFrame.from_dict(data)
    df.index = ['r1']
    return df


def print_columns(df: pd.DataFrame):
    print(list(df.columns.levels[0]))  # prints ['c1', 'c2']


if __name__ == '__main__':
    df_ = get_df()
    print_columns(df=df_)

【问题讨论】:

【参考方案1】:

根据Pandas documentation,可以像这样对多级对象进行类型提示:

import pandas as pd
...
def print_columns(df: pd.MultiIndex) -> None:
    print(list(df.columns.levels[0]))

【讨论】:

感谢您的回答。但是对于df: pd.MultiIndex,PyCharm 将columns 标记为警告而不是levels 我担心这可能是 PyCharm 的限制,根据这个类似的帖子 ***.com/a/42440466/11246056。但这篇其他帖子可能会有所帮助:***.com/a/67006481/11246056

以上是关于python如何抓取当前运行软件的输入框?的主要内容,如果未能解决你的问题,请参考以下文章

python如何获取cmd命令框里的内容

如何输入多索引熊猫数据框 Python3.8+ 的提示?

打字时 输入框不时失去焦点 非常郁闷

python WEB UI自动化在日期框中动态输入当前日期

抓取当前股票价格并创建数据框

jsp中一个输入框,如何把输入框的默认值value设为当前日期yyyy-mm-dd ?