You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux命令创建Python文件:如何同时实现换行与保留\n字符

在Kali Linux中创建含保留\n字符的Python脚本

你遇到的问题源于Bash双引号的转义规则:双引号内的\\n会被解析为\n,再加上echo -e会把\n转成实际换行,最终Python脚本里的字符串参数变成了换行而非字面的\n,导致subprocess调用异常。以下是几种可靠的解决方法:

方法1:使用Here Document(推荐)

这种方式最直观,直接按脚本原样写入,无需处理复杂转义:

cat > script.py << 'EOF'
import subprocess
for i in range(3):
    if i>1:
        subprocess.run(['echo', 'first sentence.\n'])
    else:
        subprocess.run(['echo', 'second sentence.\n'])
EOF
  • 要点:'EOF'必须用单引号包裹,这样Shell不会解析内容中的任何转义或变量,完全原样写入文件。

方法2:使用printf命令

printf的转义规则更可控,能明确区分文件换行和字面\n:

printf "import subprocess\nfor i in range(3):\n\tif i>1:\n\t\tsubprocess.run(['echo', 'first sentence.\\n'])\n\telse:\n\t\tsubprocess.run(['echo', 'second sentence.\\n'])\n" > script.py
  • 原理:\n会被printf解析为文件的换行;\\n会被解析为字面的\n字符,保留在Python脚本的字符串中。

验证脚本正确性

执行生成的脚本:

python3 script.py

预期输出:

second sentence
second sentence
first sentence

内容的提问来源于stack exchange,提问作者user27749118

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:56:08