首页 > 解决方案 > 在运行时关闭文档

问题描述

我正在使用 Python 创建一个脚本来在命令提示符下运行 perforce 命令。其中一个命令打开一个文件。我想写入文件底部,然后保存文件,然后关闭文件。我不知道该文件将被命名为它每次都不同,并且每次运行程序时该命令运行 5 次或更多次。命令是: os.system('p4 user -f ' + name)

标签: pythoncommand-lineperforcep4v

解决方案


听起来您实际上想要做的是修改 Perforce 用户规范。这非常容易。如果你使用 P4Python,你有一个很好的规范对象 API:

https://www.perforce.com/perforce/r14.2/manuals/p4script/python.p4.html#python.p4.save_spectype

并且可以执行以下操作:

user = p4.get_user(name)
# do things
p4.save_user(user)

如果您想在没有 P4Python 的情况下编写脚本,则基本命令行比尝试在编辑器周围编写脚本具有更好的选择。例如:

p4 --field Reviews+=//depot/whatever/... user -o NAME | p4 user -i -f

将添加//depot/whatever/...NAME'sReviews字段的底部。

或者,如果您不喜欢该--field选项,您可以自己解析和修改规范:

p4 user -o NAME | **REGEX MAGIC** | p4 user -i -f

如果你真的想编写一个类似命令p4 user的脚本,而不是使用脚本 API 或方便的-o/ -i/ 钩子,以避免让它调用带有临时文件的编辑器(换句话说,如果你是一个正在寻找独特挑战的脚本受虐狂),您最好的选择是覆盖P4EDITOR并让它指向您编写的脚本。任何指定的可执行文件都P4EDITOR将使用临时文件名调用;修改后的规范将在P4EDITOR退出后立即上传(从临时文件)。


推荐阅读