获取额外的Python打印输出行?

获取额外的Python打印输出行?,python,python-3.x,Python,Python 3.x,Python新手。我制作了一个脚本来捕获活动窗口标题并将其打印到控制台。我添加了时间戳和用户。这是我的 import win32gui import datetime import getpass user = getpass.getuser() windowTile = ""; while ( True ) : newWindowTile = win32gui.GetWindowText(win32gui.GetForegroundWindow());

Python新手。我制作了一个脚本来捕获活动窗口标题并将其打印到控制台。我添加了时间戳和用户。这是我的

import win32gui
import datetime
import getpass

user = getpass.getuser()

windowTile = ""; 
while ( True ) :
    newWindowTile = win32gui.GetWindowText(win32gui.GetForegroundWindow());        
    if(newWindowTile != windowTile) :
        ts = datetime.datetime.now()
        windowTile = newWindowTile
        line =str(ts) + ' ' + user + ' ' + newWindowTile
        #line = newWindowTile
        print(line)
结果如下

2020-09-03 13:34:16.075329 Eric Spyder (Python 3.8)
2020-09-03 13:34:18.208329 Eric 
2020-09-03 13:34:18.279376 Eric COM5 - PuTTY
2020-09-03 13:34:18.877347 Eric 
2020-09-03 13:34:18.955382 Eric Spyder (Python 3.8)
2020-09-03 13:34:19.592409 Eric 
2020-09-03 13:34:19.631369 Eric COM5 - PuTTY

为什么要用空白信息获得额外的行输出?

当您在窗口之间切换时,比如说Alt Tab,然后它会短暂地循环到“桌面”窗口,该窗口很可能没有名称。只要在两个窗口之间单击,我想你不会看到这些行

假设您想忽略它,或者忽略任何没有标题的内容,那么您可以使用
if newWindowTitle
查看新字符串是否为非空

newWindowTile = win32gui.GetWindowText(win32gui.GetForegroundWindow());        
if newWindowTitle and newWindowTile != windowTile:
    ts = datetime.datetime.now()
    windowTile = newWindowTile
    line =str(ts) + ' ' + user + ' ' + newWindowTile
    #line = newWindowTile
    print(line)

猜测桌面被认为是一个“窗口”从来没有这样想过。它以
explorer.exe
的形式运行。如果你杀死了它,那么你就杀死了除其他活动窗口之外的所有其他窗口。顺便说一句,没有理由把
True
放在括号中。在窗口之间单击我似乎仍能看到行,但你的回答确实有助于解释和实现我想要的。谢谢