Python 尝试连接时脚本失败
Python script fails when trying to concatenate
所以我正在尝试制作一个键盘记录器作为一个小的入门项目,以帮助我学习更多关于编程的知识。我正在使用 pynput 来检测键盘输入,我想继续将字符添加到名为 line
的变量中。当我将 line += str2
放在函数外部而不是函数中时,我将要显示的脚本有效(str
变量被放在那里以调试这个确切的东西。)
代码如下:
import msvcrt, datetime
from pynput.keyboard import Key, Listener
date = str(datetime.date.today())
line = "a"
str1 = "1"
str2 = "2"
#Saves given data to a dated text file.
def saveToFile(data):
file = open("keylog_{}.txt" .format(date), "a+")
file.write(str(data))
file.close()
def on_press(key):
line += str2
print(line)
with Listener(on_press=on_press, on_release=None) as listener:
listener.join()
提前感谢任何可以帮助我弄清楚为什么会发生这种情况的人。
您没有对发送到您的 on_press 函数中的密钥执行任何操作。你是这个意思吗:
def on_press(key):
global line
line += key
print(line)
在您的示例中也将取消分配行,要执行全局操作,您必须使用关键字 global 或创建 class/closure 以保留状态。
这与变量作用域有关。 on_press
方法中的 line
与上面的 line
不同。如果你想做类似的事情,你需要告诉它使用全局范围变量:
def on_press(key):
global line
line += key
print(line)
所以我正在尝试制作一个键盘记录器作为一个小的入门项目,以帮助我学习更多关于编程的知识。我正在使用 pynput 来检测键盘输入,我想继续将字符添加到名为 line
的变量中。当我将 line += str2
放在函数外部而不是函数中时,我将要显示的脚本有效(str
变量被放在那里以调试这个确切的东西。)
代码如下:
import msvcrt, datetime
from pynput.keyboard import Key, Listener
date = str(datetime.date.today())
line = "a"
str1 = "1"
str2 = "2"
#Saves given data to a dated text file.
def saveToFile(data):
file = open("keylog_{}.txt" .format(date), "a+")
file.write(str(data))
file.close()
def on_press(key):
line += str2
print(line)
with Listener(on_press=on_press, on_release=None) as listener:
listener.join()
提前感谢任何可以帮助我弄清楚为什么会发生这种情况的人。
您没有对发送到您的 on_press 函数中的密钥执行任何操作。你是这个意思吗:
def on_press(key):
global line
line += key
print(line)
在您的示例中也将取消分配行,要执行全局操作,您必须使用关键字 global 或创建 class/closure 以保留状态。
这与变量作用域有关。 on_press
方法中的 line
与上面的 line
不同。如果你想做类似的事情,你需要告诉它使用全局范围变量:
def on_press(key):
global line
line += key
print(line)