Windows cmd如何用快捷键清屏?scrapy shell清屏出现0怎么解决
问题原因
os.system() 函数执行系统命令后会返回命令的退出状态码,cls 命令执行成功的返回值为0。你当前使用的scrapy shell基于Python交互式环境,该环境会默认打印未被变量接收的表达式返回值。你直接调用cls()时没有处理返回的状态码,所以0就被额外输出到控制台顶部了。
解决方案
方案1:修改清屏逻辑丢弃返回值
只需要调整你代码里的清屏调用逻辑,让返回的状态码被自动忽略即可,有两种常用写法:
- 调用清屏函数时,把返回值赋值给Python中约定用来表示无用值的临时变量
_,修改后的AutoHotkey脚本内容如下:Send from os import system{Enter} Send cls = lambda: system('cls'){Enter} Send _ = cls(){Enter} - 直接修改lambda函数本身,让它不返回状态码:
这种写法下Send from os import system{Enter} Send cls = lambda: system('cls') and None{Enter} Send cls(){Enter}cls执行成功返回None,Python交互式环境不会打印None值,也不会出现多余的0。
方案2:用subprocess模块替代os.system
如果你希望完全避免返回值的影响,可以用subprocess模块实现清屏,写法更稳妥:
Send import subprocess{Enter} Send cls = lambda: subprocess.call('cls', shell=True){Enter} Send _ = cls(){Enter}
内容的提问来源于stack exchange,提问作者YasserKhalil
相关产品推荐
相关产品推荐

