繁体   English   中英

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

[英]Getting extra lines Python print output?

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM