在命令行上,
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/