看代码注释

s = input()
commands, stack, mark = [], '', 0#存储命令,存储当前字符串的栈,当前标记引号数量
for c in s:#遍历整个字符串
    if c==' ':
        if len(stack)!=0 and mark==0:#当前空字符是分隔符(不是引号内的空字符)
            commands.append(stack)
            stack = ''
        elif mark==1:#空字符是引号内的空字符,前面有一个引号
            stack += c
        else:#引号后的空字符
            continue
    elif c=='"':
        if mark==0:#当前引号是开始引号
            mark += 1
        else:#当前引号是结尾引号
            commands.append(stack)
            stack = ''
            mark = 0
    else:#当前字符不是分隔符
        stack += c
if len(stack)!=0:#如果栈里还有元素则加上
    commands.append(stack)
print(len(commands))#输出
for x in commands:
    print(x)