我有一个Python(2.7)控制台应用程序,我在Windows(8.1)上编写过。我在执行程序时使用了argparse.ArgumentParser()
来处理参数。
应用程序有很多参数,因此当使用--help
参数时,文档大大超出了控制台窗口的大小。即使控制台窗口最大化。这很好,但我遇到的问题是用户无法向上滚动查看其余的帮助文档。我已经适当地配置了我的Windows控制台属性,例如"窗口大小"和"屏幕缓冲区大小"。我已经验证了这些更改是有效的,但它们只能在Python环境之外工作。只要我执行Python脚本或为脚本运行--help
命令,控制台属性就不再适用。滚动条将从窗口中消失,我无法再滚动到顶部以查看之前的内容。
基本上,我需要弄清楚如何为我的Python控制台程序启用滚动。我在执行脚本和查看--help
文档时都需要启用滚动功能。我不知道该怎么做。我一直在网上搜索有关该主题的任何信息,我还没有找到任何有用的东西。
此时,我完全陷入困境。因此,如果有人知道如何滚动工作,我将非常感谢您的帮助。
答案 0 :(得分:0)
你不能从你的python脚本中做到(好吧,有可能,但很可能你不想这样做)。滚动取决于环境(Windows或Linux终端,无所谓)。因此,用户可以通过对他们有益的方式进行设置。
在Linux上,您可以使用less
或more
:
python script.py | less
它将缓冲脚本的输出,并允许用户在不丢失任何信息的情况下向上和向下滚动。
答案 1 :(得分:0)
这是我的朋友,允许在两个维度上滚动。
def home(request):
group = Group.objects.all()
form = GroupForm()
if request.method == 'POST':
form = GroupForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.vehicles = form.cleaned_data['vehicles']
obj.save()
return redirect('/')
context = {'group': group, 'form': form}
return render(request, 'calculator/Input.html', context)
如果您想修复在任意一侧滚动,
from ctypes import windll, byref
from ctypes.wintypes import SMALL_RECT
WindowsSTDOUT = windll.kernel32.GetStdHandle(-11)
dimensions = SMALL_RECT(-1, -1, 89, 28) # (left, top, right, bottom)
# Width = (Right - Left) + 1; Height = (Bottom - Top) + 1
windll.kernel32.SetConsoleWindowInfo(WindowsSTDOUT, True, byref(dimensions))
在上述书面代码之前添加这段代码。