使用部分输入作为文件名

时间:2014-03-11 20:41:55

标签: python file input command

我正在开发一个程序,它接受一个列表并将它们作为列表和元组进行管理。

我有一个相当令人尴尬的简单(或似乎是这样)问题:如果我有一个主循环命令的输入函数,我如何使用命令加上文件名中的if / elif / else等相同的输入?

示例:

可用命令:QUIT,INPUT filename

    cmd = input("Please input a command: ")
    while cmd != "QUIT":
        if cmd == "INPUT filename"
            file = open("filename")
            for line in file:
                line_list = line.strip().split(";")
                main_list.append(line_list)

我不知道如何让它将INPUT命令的文件名部分识别为要使用的文件名,同时如果cmd ==“INPUT filename”或类似的话,使IF语句变得简单,如果你知道我想说的是什么。

2 个答案:

答案 0 :(得分:1)

    cmd = input("Please input a command: ")
    while cmd != "QUIT":
        if cmd.startswith("INPUT"):
            cmd = cmd.split()
            if len(cmd) != 2:
                print "Usage: INPUT <filename>"
            else:
                file = open(cmd[1])

答案 1 :(得分:0)

如果filename没有空格,您可以使用

filename = cmd.split(' ')[1]

否则,您知道命令第一部分的长度,因此您可以使用:

filename = cmd[6:]

我认为第二种选择更可取。在您的代码中,这看起来像

cmd = input("Please input a command: ")
while cmd != "QUIT":
    if cmd.startswith("INPUT"): 
        if len(cmd) < 7:
            print "Usage: INPUT <filename>"
            continue
        filename = cmd[6:]
        file = open("filename")
        for line in file:
            line_list = line.strip().split(";")
            main_list.append(line_list)

如果您有其他命令,INPUTSAVE等,您可以使用类似

的内容

argument = cmd[len(command_name):]

相关问题