1

ユーザーがコマンドを入力し、フィードバックをコンソールに出力する基本的なユーティリティをPython 3で作成しています。input()または関数を使用してデータを入力する場合sys.stdin.readline()、コマンドライン セッションは次のようになります (\r および \n 文字を含む)。

1. What is your name:\n
2. <user input>\n
3. Your name is <variable>.\n

\rしかし、2行目に示すように、ユーザーが文字の代わりにEnterキーを押した後に文字を表示したいと思います\n。ユーザーがすべてを入力してEnterキーを押した後、次のようになります

1. What is your name:\n
2. Your name is <variable>.\n

(2行目\rは入力されたデータの後に文字があり、カーソルを左端に戻すため)

これを達成する方法を知っている人はいますか?

4

2 に答える 2

0

msvcrtモジュールがWindows専用であることはほぼ確実ですが、この方法を発見しました。

import msvcrt
import sys

def msgInput(prompt):
    print(prompt, end='')
    data= b''
    while True:
        char= msvcrt.getch()
        if char != b'\r':
            print(char.decode(), end='')
            sys.stdout.flush()
            data= data+char
        else:
            print('\r', end='')
            break
    return data.decode()

クロスプラットフォームの方法を誰かが知っている場合は、共有してください。

更新- 残念ながら、この方法には、ユーザーが入力したテキストを矢印キーでナビゲートできないなど、多くの制限があります。

于 2013-05-10T21:33:42.130 に答える
-1

さて、私はあなたが望んでいた解決策を見つけたと思います:

strng=input("Enter String - ")

ここで、strng は入力応答を保持する単なる変数です。これにより、インタープリター Enter String - (引用符なし) で文字列が返され、応答を変数 strng に保存できるようになります。

于 2013-11-17T04:11:06.850 に答える