【发布时间】:2022-10-18 05:03:06
【问题描述】:
我的一个朋友遇到了这个难题。
他基本上有一个巨大的字符串,并试图使用 pyautogui 的 .write() 函数将此字符串写入任何文本字段(在本例中为 Windows 记事本)。
他使用的代码如下:
import pyautogui
import time
# The string to which all numbers are being added
x = ""
# Some time to switch to notepad before pyautogui spams a bunch of characters
time.sleep(5)
# Add numbers to the string along with a space
for i in range(1, 2001):
x += str(i) + " "
# "Simulate" the keyboard writing out the entire string
pyautogui.write(x)
请注意,pyautogui.write() 有一个可选参数 interval,默认设置为 0。 pyautogui 的源代码使用time.sleep(interval) 创建一个区间。
现在有两个有趣的异常现象表明:
- 打字速度似乎加快了。
- 就在字符串中的 1250 附近,它似乎失去了控制,并发送了一堆乱七八糟的数字和空格。
混乱的示例如下所示:
1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 12 66662662621 728822111 1 3 599933331 21612222333111111 73444433111 24686066663971117777773331413311111 3599944441 11111111 802222444623444411144441111179511155555754444444444111 2 68024 024 68 0 6 02 680324 65511111155511155555555555555555555666466772468088868 16000009135 111666661663666344446668 1111166666666766677357 111111116666699924911771777007111111216 1177722777333335 111111777440 111111176357779 11788828888 1777999903 188811111111168 1111888228833335 1118 4148 468 41 511828 85 51 588 5108128141 61 68 718 28 715 768 719 8188 8138 158 8888 991118 381 91781900111913901 017 0199 19 1291194111691118 11021 23915997
在混乱之前输入的所有内容都如您所料,只是自然数在上升。
有谁知道为什么它会陷入混乱?提前致谢!
编辑:我知道这可以很容易地通过添加一些间隔来规避,但我们的问题首先关注为什么会发生这种情况。
【问题讨论】: