教你在windows上用Python获得控制台大小(宽高)
1、在Python3.3开始的版本,我们要获得控制台宽高,就会很简单了。
python3.3开始,os模块提供了一个get_terminal_size方法来获得控制台的大小。
开始之前,我们需要知道,我们怎么看控制台的窗口大小。
打开cmd窗口,右键标题部分,属性。
在布局属性内看到控制台的窗口大小。
如图
2、导入os模块,调用我们的get_terminal_size方法。
import os
width = os.get_terminal_size().columns
#columns列表成员是存储着窗口有多少列,可以理解为我们的宽。
height = os.get_terminal_size().lines
#lines成员存储着窗口有多少行,可以理解为我们的高
print("控制台宽度%d 控制台高度%d" %(width,lines))
3、但是注意一点是,不要在Python的IDLE中调用get_terminal_size方法,小伙伴肯定想到了,这是针对控制台,IDLE只是一个窗口,不是控制台,调用会出错的哦。
4、以上方法是针对python3.3开始以及以后的版本,在3.3之前,我们只能通过第三方模块,或者windowsAPI来获得。
小编电脑上有安装Python2,在Python2中就相当麻烦了。
详细代码如下:
#-*- coding:utf-8 -*-
from ctypes import windll, create_string_buffer
win_stdout = -11
fd = windll.kernel32.GetStdHandle(win_stdout)
#获得标准输出的句柄
cstruct = create_string_buffer(22)
rc_struct = windll.kernel32.GetConsoleScreenBufferInfo(fd, cstruct)
#获得控制台的属性
if rc_struct:
import struct
(bufx, bufy, curx, cury, wattr,
left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh", cstruct)
sizex = right - left + 1
sizey = bottom - top + 1
#计算控制台宽高
#python2 编码处理,转换成gb2312
mystr = ("宽度 = %d,高度 = %d" %(sizex,sizey)).decode('utf-8').encode('gb2312')
print(mystr)
5、在python2.7内运行结果如下,可以看到也能获得控制台的宽高,不过从上面的代码就可以看出,相当麻烦。调用windows的API,当然,如果有第三方模块可以解决这个问题的话最好不过了。
1、怎么关注?
在经验的右上角小编头像旁边点击关注,如图。
2、怎么点赞?
请在经验左侧点赞,如图。
3、怎么投票?
在经验的下方点击投票,如图。
4、如果觉得小编写的还不错,可以动动鼠标把它分享给您的朋友。
如何分享,鼠标移动到右下角第一个按钮上,在弹出的选项中进行分享,如图。
不尽感激。