【问题标题】:How to run multiple statements in command line? [duplicate]如何在命令行中运行多个语句? [复制]
【发布时间】:2019-09-07 00:46:41
【问题描述】:

是否可以从 Windows 的命令行在 Python 中运行多个命令?

这是我在 Windows 命令行中尝试过的。

python -c print(4)\nprint(5)

我收到的错误如下:

SyntaxError: unexpected character after line continuation character

我上面写的能做到吗?

我可以运行多个语句,如下所示:

python -c a=5\nb=3\nprint(a+b)

如果是这样,怎么做?

【问题讨论】:

    标签: python windows command-line


    【解决方案1】:

    分号,而不是换行符

    python -c "print(4); print(5)"
    # prints 4, and then 5
    python -c "a=5; b=3; print(a+b)"
    # prints 8
    

    【讨论】:

    • 换行符可以正常工作,如果您实际上传递了换行符,而不是文字字符 \n,作为参数的一部分。
    • 谢谢绿斗篷人。使用双引号的原因是什么?我想我在一些文档中遇到过它,但我不明白为什么它是必要的。
    • 双引号告诉你的 shell 把它们里面的所有东西当作一个单独的标记,而不是单独的标记——不管任何分隔符或其他什么。在这种情况下,它们基本上是必需的 - 传递换行符的唯一方法是将其放在引号内(否则它会在 shell 中结束该行;\n 在 shell 上实际上不起作用,因为你已经发现),如果不在引号中,; 也会做同样的事情。单引号应该也可以工作(至少在 Bash 中它们是可以互换的;我不知道在 Powershell 中是否是这种情况)
    • 谢谢,我还注意到函数中的某些参数在终端中似乎也不起作用。例如,在 Python 中设置 a,b=1,2 然后尝试打印为 print(a,b,sep='#') 不起作用。这是什么原因?出于某种原因,终端或任何其他 shell 是否隐含地以不同方式处理参数?
    • 每个python -c 命令将独立于其他命令执行。如果您想同时执行a,b=1,2print(a,b,sep='#'),则必须将它们放在同一个命令中。在我的机器上,python3 -c "a,b=1,2;print(a,b,sep='#')" 产生1#2 的预期输出
    猜你喜欢
    • 2019-01-30
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2018-05-12
    相关资源
    最近更新 更多