与控制台python

时间:2018-06-26 20:57:42

标签: python python-3.x

我有一个功能,可以接收一个强制文件和其他可能的可选文件。当前,该功能可以从用户输入读取和写入单个文件。但是我想加载和写入与用户从控制台输入中输入的文件一样多的文件。为此,我想为一个强制性文件名定义函数,而将其定义为可选参数。

我如何要求控制台输入中的用户输入一个强制性文件和其他所有可能的可选文件名(仅在用户需要时),并在一个函数中分别读写它们而不相互混合。我想分别读取和写入所有输入的文件。

基本上,我想加载用户在控制台输入中输入的所有文件名,并将它们分别写入每个新文件中。

当前,我的函数从用户输入中加载并仅读取一个文件。

def read_files(filename, *other):
    with open(filename, 'rU') as f:
        d = json.load(f)

用户输入:

if __name__ == '__main__':
    filename = input('Enter your file name:')

    #Here I am confused how do I ask the possible number of filename and How 
    #do i stop when the user enters all filename
    other = input('Enter your other file name')
    read_files(filename, )

1 个答案:

答案 0 :(得分:1)

您可能暗示q退出会导致停止添加更多文件名:

if __name__ == '__main__':
    filename = input('Enter your file name:')

    other=[]
    while True:
        inp  = input('Enter your other file name (q for quit)')
        if inp == 'q':
            break
        else:
            other.append(inp)
    read_files(filename, other)

编辑:如果不输入任何内容,停止它可能更方便,因此while循环将是:

    while True:
        inp  = input('Enter your other file name (press ENTER for quit)')
        if inp == '':
            break
        else:
            other.append(inp)