在运行代码时如何设置字符串?

时间:2020-07-04 20:06:57

标签: python console console-application

所以我尝试使用python创建一个简单的控制台应用程序,但是我遇到了问题。 我试图做一个新的“写”命令。此命令将打印文本。

示例:

> write hello
> hello

但是我不知道该怎么做。这是我代码中的命令:

x = ""

if w == "write " + x:
    
    if x == "":

        print("you need to add words")

    if x != "":

        print(x)

这很烦人,我需要帮助来解决这个问题

4 个答案:

答案 0 :(得分:2)

您可以像这样使用while循环:

while True:
    w = input("> ")
    if w.startswith('write '):
        print(w.split(' ', 1)[1])

试运行:

> write hello
hello
> write bye bye
bye bye
> hey hi
> help please!
> write Help please!
Help please!
> 

答案 1 :(得分:0)

使用sys.argv[]列表。它更容易,更僵硬:

sys.argv是Python中的list,其中包含传递给脚本的命令行参数。

注意sys.argv[0]是脚本本身的名称!

因此,最简单的方法是内置sys.argv list。例如,如果我的脚本名为:foo.py,则可以通过命令行将参数传递给它,例如:

python foo.py向您问好 在foo.py中,我可以像这样获得传递的参数:

import sys

if __name__ == '__main__':
    for arg in sys.argv[1:]:
        #do work with arg! arg is a string type!
        if argv[1]=='write':
            print(argv[2]) 

答案 2 :(得分:0)

使用input()接受键盘上的用户输入,并使用split()将输入分为几部分:

command = input("Enter a command >")
parts = command.split(maxsplit=1)
if parts[0] == "write":
    if len(parts) > 1:
        print(parts[1])
    else:
        print("you did not enter any words to write")
else:
    print("unknown command")

答案 3 :(得分:0)

假设您要编写一个不使用命令作为 参数(如上面回答中的建议),但是您运行该程序并循环检查用户输入,则可以通过以下方式进行操作:

import re 

def main():
    user_input = input()
    write_command_pattern = "(?<=write)\s+.*"

    result = re.findall(write_command_pattern, user_input)
    print(result[0])

if __name__=='__main__':
    main()

正则表达式(?<=write)\s+.*返回每个以write开头的任意字符串。要接受多个命令,可以将其包装成一个循环,并为其他命令添加其他模式。