如何使用 -c 选项执行多行 python

fla*_*urn 4 python command-line python-3.x

我需要使用 -c 选项使用 python 执行多行 python 脚本。

例子:

python -c "
print()
print()
print()"
Run Code Online (Sandbox Code Playgroud)

我知道有一种方法可以通过将所有内容放在一行并用分号分隔所有内容来做到这一点,即

python -c "print(); print(); print()"
Run Code Online (Sandbox Code Playgroud)

但是我需要执行的脚本比3行代码略大,需要写在多行上。

任何帮助表示赞赏。

ber*_*roe 5

你试过你的第一个例子吗?这对我行得通。但是,根据您的代码,如果有双引号,您可以使用单引号。

python -c '
print("hello")
print("two")
print("three")
'
Run Code Online (Sandbox Code Playgroud)

您还可以使用“heredoc”而不添加-c,然后您不必担心引号。这基本上就像从文件中读取它。

python <<EOP
print("check")
print('one')
print('"two"')
EOP
Run Code Online (Sandbox Code Playgroud)

TheEOP可以只是一个唯一的字符串,您可以通过将其放在自己的开头一行来终止输入。在远程情况下,您的代码中有$PATH*或其他不想替换的 bash 实体,请在第一个周围加上单引号 EOP

# Define variable in the shell (not in python)
MYVAR=Hello

# Without quotes, shell substitution happens
python <<EOP
print("$MYVAR"*3)
EOP

HelloHelloHello

# With quotes, no shell substitution
python <<'EOP'
print("$MYVAR"*3)
EOP

$MYVAR$MYVAR$MYVAR
Run Code Online (Sandbox Code Playgroud)