input()调用,其中在字符串的自定义位置键入文本

时间:2018-09-08 14:01:13

标签: python python-3.x input

这实际上是自一年前开始学习Python以来的一个问题。它是以下内容:如何调用input函数并使用户在prompt末尾以外的某个位置键入其条目?

为了澄清,假设我有字符串

'Enter file size: MB'

当被调用时,我希望这样插入文本:

Enter file size: 62 MB

是否可以在如下所示的函数调用中重新创建此行为?

input('Enter file size: {} MB')
# where Python would interpret
# the {} as the position to input text

2 个答案:

答案 0 :(得分:3)

这适用于Windows和Linux:

import sys
print("                    MB\rEnter file size: ", end = "")
file_size = sys.stdin.readline()[:-1]

在Linux(不是 Windows)上,您也可以使用input(" MB\rEnter file size: ")

这是一个使它易于使用的函数:

import sys

def input_multipart(prefix, gap_length, suffix):
    print(" " * (len(prefix) + gap_length) + suffix + "\r" + prefix, end = "")
    return sys.stdin.readline()[:-1]

用法:

file_size = input_multipart("Enter file size: ", 3, "MB")

输出:

Enter file size:    MB

答案 1 :(得分:2)

(Linux)

编辑:一种方法是:

file_size=input("Enter file size :       MB\rEnter file size : ")

您也可以尝试:

file_size=input("Enter file size:     MB \x1B[6D")
#Enter file size:  12 MB 

\x1B[6D中,这里的6将光标向后移动六个位置,并让用户输入:之后但MB之前的值

enter image description here enter image description here