在运行时关闭文档

Closing Documents During Runtime

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

听起来您实际上想做的是修改 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/... 添加到 NAMEReviews 字段的底部。

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

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

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