手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

教你在windows上用Python获得控制台大小(宽高)

时间:2024-10-12 15:46:08

1、在Python3.3开始的版本,我们要获得控制台宽高,就会很简单了。python3.3开始,os模块提供了一个get_terminal_size方法来获得控制台的大小。开始之前,我们需要知道,我们怎么看控制台的窗口大小。打开cmd窗口,右键标题部分,属性。在布局属性内看到控制台的窗口大小。如图

教你在windows上用Python获得控制台大小(宽高)
教你在windows上用Python获得控制台大小(宽高)

2、导入os模块,调用我们的get_terminal_size方法。import oswidth = os.get_terminal_size().co造婷用痃lumns#columns列表成员是存储着窗口有多少列,可以理解为我们的宽。height = os.get_terminal_size().lines#lines成员存储着窗口有多少行,可以理解为我们的高print("控制台宽度%d 控制台高度%d" %(width,lines))

教你在windows上用Python获得控制台大小(宽高)

3、但是注意一点是,不要在Python的IDLE中调用get_terminal_size方法,小伙伴肯定想到了,这是针对控制台,IDLE只是一个窗口,不是控制台,调用会出错的哦。

教你在windows上用Python获得控制台大小(宽高)

4、以上方法是针对python3.3开始以及以后的版本,在3.3之前,我们只能通过第三方模块,或者windowsAPI来获得。小编电脑上有安装Python2,在Python2中就相当麻烦了。详细代码如下:#-*- coding:utf-8 -*-from ctypes import windll, create_string_bufferwin_stdout = -11fd = 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 + 1sizey = bottom - top + 1#计算控制台宽高#python2 编码处理,转换成gb2312mystr = ("宽度 = %d,高度 = %d" %(sizex,sizey)).decode('utf-8').encode('gb2312')print(mystr)

教你在windows上用Python获得控制台大小(宽高)

5、在python2.7内运行结果如下,可以看到也能获得控制台的宽高,不过从上面的代码就可以看出,相当麻烦。调用windows的API,当然,如果有第三方模块可以解决这个问题的话最好不过了。

教你在windows上用Python获得控制台大小(宽高)
© 手抄报圈