Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用部分输入作为文件名_Python_File_Input_Command - Fatal编程技术网

Python 使用部分输入作为文件名

Python 使用部分输入作为文件名,python,file,input,command,Python,File,Input,Command,我正在开发一个程序,它接受一个列表,并将它们作为列表和元组进行管理 我有一个相当令人尴尬的简单问题(或者看起来很简单):如果我有一个主循环命令的输入函数,我如何在相同的输入中使用该命令加上一个文件名来编写If/elif/else等 例如: 可用命令:退出,输入文件名 cmd = input("Please input a command: ") while cmd != "QUIT": if cmd == "INPUT filename"

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

我有一个相当令人尴尬的简单问题(或者看起来很简单):如果我有一个主循环命令的输入函数,我如何在相同的输入中使用该命令加上一个文件名来编写If/elif/else等

例如:

可用命令:退出,输入文件名

    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)
我不知道如何让它将输入命令的文件名部分识别为要使用的文件名,同时如果您知道我想说什么的话,也可以简化IF语句IF cmd==“INPUT filename”或类似语句。

cmd=INPUT(“请输入命令:”)
    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])
while cmd!=“退出”: 如果cmd.startswith(“输入”): cmd=cmd.split() 如果len(cmd)!=2: 打印“用法:输入” 其他: 文件=打开(cmd[1])
如果
文件名
没有空格,您可以使用

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)
cmd=input(“请输入命令:”)
while cmd!=“退出”:
如果cmd.startswith(“输入”):
如果len(cmd)<7:
打印“用法:输入”
持续
filename=cmd[6:]
文件=打开(“文件名”)
对于文件中的行:
line_list=line.strip().split(“;”)
主列表。追加(行列表)
如果您有其他命令,
INPUT
SAVE
等,您可以使用以下命令


argument=cmd[len(command_name):]

首先,您在for循环下面的缩进是错误的。呃,很抱歉,这只是因为之前从未在堆栈溢出上编写过代码:p