我知道如何在python中将选定的文本从小写转换为大写,反之亦然:
string.swapcase();
我知道如何用
大写所选文本:string.capitalize();
但是我想得到 cycle 小写字母-大写字母-所选文本的大写字母。
python可能吗?
### Get the current selection.
sText=clipboard.get_selection()
### Analyse.
if sText.islower():
sText=sText.capitalize()
elif sText.isupper():
sText=sText.lower()
else:
sText=sText.upper()
### Send the result.
keyboard.send_keys(sText)
此解决方案的问题是文本不会保持选中状态。 。
答案 0 :(得分:1)
解决了!
# Get the current selection.
sText=clipboard.get_selection()
lLength=len(sText)
# Analyse.
if sText.islower():
sText=sText.capitalize()
elif sText.isupper():
sText=sText.lower()
else:
sText=sText.upper()
# Send the result.
keyboard.send_keys(sText)
keyboard.send_keys("<shift>+<left>"*lLength)
这有效! 但是大写字母只是第一个单词。
# Get the current selection.
sText=clipboard.get_selection()
lLength=len(sText)
try:
if not store.has_key("textCycle"):
store.set_value("state","title")
except:
pass
# get saved value of textCycle
state = store.get_value("textCycle")
# modify text and set next modfication style
if state == "title":
#sText=sText.capitalize()
sText=sText.title()
newstate = "lower"
elif state == "lower":
sText=sText.lower()
newstate = "upper"
elif state == "upper":
sText=sText.upper()
newstate = "title"
else:
newstate = "lower"
# save for next run of script
store.set_value("textCycle",newstate)
# Send the result.
keyboard.send_keys(sText)
keyboard.send_keys("<shift>+<left>"*lLength)