在运行时关闭文档

时间:2018-09-05 21:17:51

标签: python command-line perforce p4v

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

1 个答案:

答案 0 :(得分:2)

听起来您实际上是想修改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的{​​{1}}字段的底部。

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

--field

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