1

我用 Python (.py) 编写了一个小程序,并使用 Py2exe 将其转换为 Windows 可执行文件 (.exe)。它要求一个字符串,然后输出一个字符串——非常简单!-- 并且在 Python 中完美运行。

但是,当 exe 文件在命令窗口中完成执行时,命令窗口会在我看到它的输出之前自动关闭(我假设它确实会打印输出,因为正如我所说,它在 Python 中完美运行)。

我怎样才能防止这种情况发生?我假设我需要更改我的代码,但我到底需要添加什么?

这是我的代码,以防它帮助您查看它(它是一个文字包装器):

import string

def insertNewlines(text, lineLength):
    if text == '':
        return ''
    elif len(text) <= lineLength:
        return text
    elif text[lineLength] == ' ':
        return text[:lineLength] + '\n' + insertNewlines(text[lineLength+1:], lineLength)
    elif text[lineLength-1] == ' ':
        return text[:lineLength] + '\n' + insertNewlines(text[lineLength:], lineLength)
    else:
        if string.find(text, ' ', lineLength) == -1:
            return text
        else:
            return text[:string.find(text,' ',lineLength)+1] + '\n' + insertNewlines(text[string.find(text,' ',lineLength)+1:], lineLength)
    print

if __name__ == '__main__':
    text = str(raw_input("Enter text to word-wrap: "))
    lineLength = int(raw_input("Enter number of characters per line: "))
    print 
    print insertNewlines(text, lineLength)

谢谢你。

4

3 回答 3

1

最简单的方法可能是raw_input()在程序完成之前使用。它会等到您按下回车键后再关闭。

if __name__ == '__main__':
    text = str(raw_input("Enter text to word-wrap: "))
    lineLength = int(raw_input("Enter number of characters per line: "))
    print 
    print insertNewlines(text, lineLength)
    raw_input()
于 2012-11-08T01:19:06.167 回答
1

只需将其放在代码的末尾:

junk = raw_input ("Hit ENTER to exit: ")

换句话说,您的main细分应该是:

if __name__ == '__main__':
    text = str(raw_input("Enter text to word-wrap: "))
    lineLength = int(raw_input("Enter number of characters per line: "))
    print 
    print insertNewlines(text, lineLength)
    junk = raw_input ("Press ENTER to continue: ")
于 2012-11-08T01:21:25.853 回答
0

这是我在脚本中使用的:

#### windows only ####
import msvcrt

def readch(echo=True):
    "Get a single character on Windows."
    while msvcrt.kbhit():
        msvcrt.getch()
    ch = msvcrt.getch()
    while ch in b'\x00\xe0':
        msvcrt.getch()
        ch = msvcrt.getch()
    if echo:
        msvcrt.putch(ch)
    return ch.decode()

def pause(prompt='Press any key to continue . . .'):
    if prompt:
        print prompt,
    readch()
######################

但有时,我只是使用以下方法使窗口在关闭前保持打开一小段时间。

import time
time.sleep(3)
于 2012-11-08T01:41:00.777 回答