python-使用从剪贴板中提取的数据更新字符串,然后立即粘贴此更新的字符串
发布时间:2022-04-09 04:48:44 615
相关标签: # node.js
我正在做一个样板脚本。理想情况下,这个脚本应该从键盘缩写开始。当我输入“时”;“10天”;这个脚本将在样板文件中添加一个未来10个工作日的日期,并提取剪贴板中的内容(大概是名称),并更新问候语中的“名称”。
date函数工作得很好(多亏了我在这里读到的一个线程)。
现在我被困在如何拉剪贴板中的内容来更新样板文件中的名称上。
我不确定我是否可以使用键盘运行函数。加上缩写。经过多次尝试和错误之后,我换了方向,开始使用键盘。添加热键,但我似乎仍然无法用剪贴板中的内容更新样板文件。
以下是我目前掌握的代码:
import keyboard
import win32clipboard
import datetime
#Establishing business days
def date_by_adding_business_days(from_date, add_days):
business_days_to_add = add_days
current_date = from_date
while business_days_to_add > 0:
current_date += datetime.timedelta(days=1)
weekday = current_date.weekday()
if weekday >= 5: # sunday = 6
continue
business_days_to_add -= 1
return current_date.strftime('%A, %m/%d')
name = ''
# This seems to be where I'm having the issue
def getName():
global name
win32clipboard.OpenClipboard()
name = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
keyboard.write(tenDay_BP)
return name
#Adding days to the current date
tenBusinessDays = str(date_by_adding_business_days(datetime.date.today(), 10))
#Boilerplate messaging
tenDay_BP = 'hi ' + name + ', I have this scheduled to be ready for your review by US EOB ' + tenBusinessDays
keyboard.add_hotkey('ctrl + alt + c', lambda: getName())
#keyboard.add_abbreviation('10day', tenDay_BP)
# Block forever, like `while True`.
keyboard.wait('esc')
理想情况下,该脚本不应干扰剪贴板的常规功能,我只想借用剪贴板中的内容。
我之前提交了一个问题,但希望这能提供更多的背景,我可能会对如何解决我的特定问题有更清晰的理解。
def getName():
global namekeyboard.press_and_release('ctrl + alt + c')
time.sleep(.5)
win32clipboard.OpenClipboard()
name = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
keyboard.write(tenDay_BP)
return name
我希望当我按下'ctrl+alt+c'时,getName会发送'quot;ctrl+c“组合键;,用新内容重新加载剪贴板。我添加了睡眠,以便在我进入剪贴板之前有时间进行更新,win32clipboard将结果存储在“name”中,这样当我最终运行键盘时。写下(tenDay_BP)问候语中将包含姓名。这不会发生。
如果我在name=win32clipboard之后运行print(name)。OpenClipboardData()我可以看到我正在收集数据,而不是更新样板文件。
我尝试过使用Pynput,但语法方面我遇到了困难。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报