python如何抓取当前运行软件的输入框?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何抓取当前运行软件的输入框?相关的知识,希望对你有一定的参考价值。
已经有了一个exe程序,其中有一个输入框,我想当那个输入框输入一个字符串的时候,python程序自动获取内容,然后从另一个表格中间找到对应的字符串2,填入exe程序里面,求高手讲一讲思路。
(也不一定用python,其它语言也可以,有实现的思路就可以)
先获取窗口的句柄 >>遍历窗口下的所有控件>>通过输入框的特征,比如标识名称,找到对应的输入框>>操作输入框属性>>处理获取新字符串>>通过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如何抓取当前运行软件的输入框?的主要内容,如果未能解决你的问题,请参考以下文章