如何用Python命令行参数替换docx变量并指定文件名保存?
问题解决步骤
1. 修正变量替换错误
你的脚本里replacements字典的取值是字符串字面量(比如"print(arg1)"),这会直接把这段文本写入文档,而不是引用arg1的实际值。需要把这些值改成直接引用变量:
- 把
"print(arg1)"改成arg1 - 把
"file.writelines(arg2)"改成arg2 - 把
"(arg3)"改成arg3
2. 修改文档保存路径
要保存为第三个命令行参数命名的docx文件,直接用sys.argv[3]拼接.docx后缀即可,比如doc.save(f"{sys.argv[3]}.docx")
修改后的完整脚本
import sys from docx import Document # 提取命令行参数 arg1, arg2, arg3 = sys.argv[1], sys.argv[2], sys.argv[3] doc = Document('test.docx') # 修正替换规则,直接引用变量 replacements = { '${replace_me_1}': arg1, '${replace_me_2}': arg2, '${replace_me_3}': arg3, } # 执行替换操作 for paragraph in doc.paragraphs: for key, value in replacements.items(): paragraph.text = paragraph.text.replace(key, value) # 保存为指定文件名 doc.save(f"{arg3}.docx")
验证效果
运行命令:
python var-replace.py cat fish dog
执行后会生成dog.docx,文档内容为:
cat fish dog
内容的提问来源于stack exchange,提问作者pwrsheller
相关产品推荐
相关产品推荐

