我的脚本打开一个Windows cmd提示符,需要帮助粘贴到它

时间:2013-03-17 08:12:46

标签: python windows cmd py2exe

我编写了一个Python程序并使用py2exe将其变成了一个Windows可执行程序。

当程序运行时,它会打开一个伪cmd窗口供用户进行交互。 (只使用print& raw_input)

通常,在win cmd提示符下,您可以右键单击任意位置并点击粘贴。

但是,在这个伪cmd窗口中你不能。您可以右键单击标题栏并转到编辑 - >粘贴,但这很痛苦,大多数用户无论如何都不知道。

我想〜能够添加此功能,和/或能够直接粘贴ctrl-v。

任何想法?

1 个答案:

答案 0 :(得分:0)

使用msvcrt模块(仅限Windows)您可以通过char获取用户输入char(不使用'enter',与python的raw_input不同)

import msvcrt

def inputemulator():
    buf = []
    while True:
        ch = msvcrt.getch()
        if ch=="\r": #newline
            yield ''.join(buf)
            buf = [] 
        elif ch=="\x03": #ctrl-c
            raise KeyboardInterrupt
        elif ch=="\x16": #ctrl-v, do paste, ...
            pass
        else:
            buf.append(ch)

for line in inputemulator():
    print line