python - 如何在命令行中使用 "python -c"缩进

标签 python python-3.x

在命令行上,

python -c "z = [i for i in range(5)]; print (z)"给出

[0, 1, 2, 3, 4]

哪里;意味着应该有一个换行符。

但是如果换行符后跟一个制表符呢?或者(喘气)两个标签?

以下代码不起作用,但它说明了我希望能够执行的操作:

python -c "z = [i for i in range(5)]; for i in z: print (i)"

并获取输出:

1
2
3
4
5

所以基本上问题是:如何使用 python -c 执行以下代码?

z = [i for i in range(5)] 
for i in z:
    print (i)

最佳答案

请注意,;并不总是换行符的有效替代品,所以问题实际上是:如何提供任意代码。这基本上取决于了解如何使用您的 shell。

bash 中,您可以使用 $'...' 引用构造真正的单行代码:

python -c $'z = [i for i in range(5)]\nfor i in z:\n    print(i)'

尽管如果您可以自己嵌入换行符,阅读起来会更容易:

python -c '
z = [i for i in range(5)]
for i in z:
    print(i)
'

请注意,由于缩进非常重要,因此如果对 python 的调用本身在 shell 脚本中缩进,则无法轻松执行此操作,因为您的脚本缩进会成为论证本身的一部分。

if [[ cmd = "do it" ]]; then

    # The Python script has to be dedented
    python -c '
z = [i for i in range(5)]
for i in z:
    print(i)
'
fi

关于python - 如何在命令行中使用 "python -c"缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61636539/

相关文章:

Python 有缺陷的直方图?

python - 日期时间列上的 Pyarrow 子集数据

python - 将嵌套列表转换为字符串

python-3.x - RuntimeError : Failed to init API, 可能是无效的 tessdata 路径:<>

python - 如何使用 FastCGI 部署 django 1.5

Python 无法从文本文件中读取 "–"字符

python - 将结果写入 Excel

python - 在 Python 中,如何使用 C++ 函数通过 ** 参数返回分配的结构数组?

python - 将 float 转换为字节数组

python - 打印每个单词的第一个和最后一个字母的代码