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

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

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

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
这是完整的代码:

  1. import webbrowser
  2. import cv2
  3. import time
  4. word = " "
  5. num = 1
  6. key = 0
  7. cap = cv2.VideoCapture(1)
  8. 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']
  9. while True:
  10. success, frame = cap.read()
  11. cv2.putText(frame,'Type First And Last Name',(220,25),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
  12. cv2.putText(frame,'And Then Hit Enter',(245,50),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
  13. cv2.putText(frame,'Then Select What Sites To Search',(160,75),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
  14. cv2.imshow('frame', frame)
  15. k = cv2.waitKey(1) % 256
  16. if k != 255:
  17. i = k - 97
  18. if i >= 0:
  19. letter = alp[i]
  20. if num == 1:
  21. pl = letter
  22. key = key+1
  23. if num == 2:
  24. word = pl + letter
  25. print(word)
  26. print(num)
  27. key = key+1
  28. if num >= 3:
  29. word = word + letter
  30. print(word)
  31. key = key+1
  32. cv2.putText(frame,word,(245,100),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,127,255),1)
  33. num = num + 1
  34. if k == 32:
  35. pk = key
  36. key = 0
  37. word = word + ' '
  38. if k == 13:
  39. for idc in range(100):
  40. print(" ")
  41. print(word)
  42. newWord = word.strip()[pk]
  43. NW = word.strip()[0]
  44. print(pk)
  45. print(newWord)
  46. print(NW)
  47. if k == 27:
  48. break
  49. cap.release()
  50. cv2.destroyAllWindows()
0md85ypi

0md85ypi1#

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

  1. >>> John Doe
  2. John

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

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

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

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

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

  1. >>> "John Doe".split()[0]
  2. "John"
  3. >>> "John Doe".split()[1]
  4. "Doe"
展开查看全部
9avjhtql

9avjhtql2#

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

相关问题