使用 Python -c 命令行标志 | AI生成和翻译

Home 2025.12

问题:如何使用 python -c 从命令行直接执行 Python 代码?

回答:

-c 标志允许你传递一个包含 Python 代码的字符串,该字符串将立即执行,而无需创建脚本文件。

基本语法

python -c "code_here"
# 或者明确使用 python3
python3 -c "code_here"

简单示例

# 打印内容
python -c "print('Hello, world!')"

# 进行数学运算
python -c "print(2 + 2 * 10)"

# 导入和使用模块
python -c "import math; print(math.sqrt(16))"

# 多条语句(使用分号或显式换行符)
python -c "import sys; print(sys.version); print('Platform:', sys.platform)"

处理引号和复杂代码

当你的代码包含引号或跨越多行时,你需要根据你的 shell 正确转义。

单行内部包含单引号

python -c "print('Single quotes are fine inside double-quoted string')"
python -c 'import os; print("User home:", os.path.expanduser("~"))'

多行代码(推荐方式)

使用 heredoc 或引用整个代码块:

python -c "
import json
data = {'name': 'Alice', 'age': 30}
print(json.dumps(data, indent=2))
"

或者使用单引号和转义的换行符:

python -c 'import antigravity
print("Flying to xkcd...")
'

替代方法:使用 \ 进行行连接 (bash/zsh)

python -c 'import sys, json; \
data = [line.strip() for line in sys.stdin]; \
print(json.dumps(data))'

你会实际使用的常用单行命令

# 列出当前目录中的所有文件(ls 的替代方法)
python -c "import os; print('\n'.join(os.listdir('.')))"

# 获取你的公共 IP
python -c "import urllib.request; print(urllib.request.urlopen('https://api.ipify.org').read().decode())"

# 快速 HTTP 服务器 (Python 3)
python -c "import http.server, socketserver; http.server.test(HandlerClass=http.server.SimpleHTTPRequestHandler, Port=8000)"

# 生成一个范围并求和
python -c "print(sum(range(1, 101)))"  # 打印 5050

提示

就是这样! python -c 非常适合快速计算、测试代码片段或在 shell 脚本中进行自动化。


Back

x-ai/grok-4.1-fast

Donate