**已关闭。**此问题需要调试详细信息。它目前不接受答案。
**想要改进此问题?**更新问题,使其位于堆栈溢出主题上。
10小时前关门了。
改进这个问题
我正在制作一个个人信息收集程序,在instagram、snapchat等网站上搜索姓名。为了在python中实现这一点,我将采用一种更为困难的方法来创建一个文本框,我使用按键捕捉,它类似于键盘插件,但它只是普通的python代码/opencv代码,我使用opencv来创建文本,创建一个框架(因为我使用pycharm,它不能在没有窗口的情况下拾取键),我需要cv2 waitkey,这样我就可以检测按下的键。它从键创建单词的方式是保存上一个键和当前键,然后像 prevKey = prevKey + CurKey
然后你会得到两个单词,因为人们有两个名字,第一个和最后一个(好的,3个,中间是idc),所以我想用strip来做 newWord = prevKey.strip()[0]
但当我这样做时,它会输出两个单词中的第一个字母,而不是第一个单词,我认为它会这样做,因为它认为它是一个字符串。我到底是应该这样做还是应该重新开始?
变量nw是newword,正在测试如何实现这一点,对于pk和key-just实验也是如此。
访问此网站获取数字电子表格文件的密钥:https://www.mediafire.com/file/ni3ru4hlegos938/keys.xlsx/file
这是完整的代码:
import webbrowser
import cv2
import time
word = " "
num = 1
key = 0
cap = cv2.VideoCapture(1)
alp = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
while True:
success, frame = cap.read()
cv2.putText(frame,'Type First And Last Name',(220,25),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
cv2.putText(frame,'And Then Hit Enter',(245,50),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
cv2.putText(frame,'Then Select What Sites To Search',(160,75),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
cv2.imshow('frame', frame)
k = cv2.waitKey(1) % 256
if k != 255:
i = k - 97
if i >= 0:
letter = alp[i]
if num == 1:
pl = letter
key = key+1
if num == 2:
word = pl + letter
print(word)
print(num)
key = key+1
if num >= 3:
word = word + letter
print(word)
key = key+1
cv2.putText(frame,word,(245,100),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
num = num + 1
if k == 32:
pk = key
key = 0
word = word + ' '
if k == 13:
for idc in range(100):
print(" ")
print(word)
newWord = word.strip()[pk]
NW = word.strip()[0]
print(pk)
print(newWord)
print(NW)
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
2条答案
按热度按时间0md85ypi1#
如果我正确理解了你的问题,你需要得到字符串的第一个单词,在本例中是一个名字的第一个名字。这样地:
strip的作用是删除字符串两端的空白:
您要查找的可能是str.split:
它以单词的初始顺序返回单词列表。因此,您可以这样使用它:
9avjhtql2#
我想你是在胡思乱想
split
功能不strip
功能。只是改变strip
进入spilt
应该能解决你的问题。