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()プログラムが終了する直前に使用することです。Enterキーを押すまで待ってから閉じます。

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 に答える