添加2个字母变量来创建一个单词,但不能使用删除所述单词

vqlkdk9b  于 2021-09-08  发布在  Java
关注(0)|答案(2)|浏览(234)

**已关闭。**此问题需要调试详细信息。它目前不接受答案。
**想要改进此问题?**更新问题,使其位于堆栈溢出主题上。

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()
0md85ypi

0md85ypi1#

如果我正确理解了你的问题,你需要得到字符串的第一个单词,在本例中是一个名字的第一个名字。这样地:

>>> John Doe
John

strip的作用是删除字符串两端的空白:

>>> "       whitespace is blank  characters like  spaces      ".strip()
"whitespace is blank  characters like  spaces"

您要查找的可能是str.split:

>>> "Three word sentence".split()
["Three", "word", "sentence"]

它以单词的初始顺序返回单词列表。因此,您可以这样使用它:

>>> "John Doe".split()[0]
"John"
>>> "John Doe".split()[1]
"Doe"
9avjhtql

9avjhtql2#

我想你是在胡思乱想 split 功能不 strip 功能。只是改变 strip 进入 spilt 应该能解决你的问题。

相关问题