在运行时关闭文档
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/...
添加到 NAME
的 Reviews
字段的底部。
或者,如果您不喜欢 --field
选项,您可以自己解析和修改规范:
p4 user -o NAME | **REGEX MAGIC** | p4 user -i -f
如果你真的想编写一个像 p4 user
这样的命令,而不是使用脚本 API 或方便的 -o
/-i
/ 避免调用它的钩子一个带有临时文件的编辑器(换句话说,如果您是一个正在寻找独特挑战的脚本受虐狂),您最好的选择是覆盖 P4EDITOR
并让它指向您编写的脚本。 P4EDITOR
指定的任何可执行文件都将使用临时文件名调用;一旦 P4EDITOR
退出,修改后的规范将(从临时文件)上传。
我正在使用 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/...
添加到 NAME
的 Reviews
字段的底部。
或者,如果您不喜欢 --field
选项,您可以自己解析和修改规范:
p4 user -o NAME | **REGEX MAGIC** | p4 user -i -f
如果你真的想编写一个像 p4 user
这样的命令,而不是使用脚本 API 或方便的 -o
/-i
/ 避免调用它的钩子一个带有临时文件的编辑器(换句话说,如果您是一个正在寻找独特挑战的脚本受虐狂),您最好的选择是覆盖 P4EDITOR
并让它指向您编写的脚本。 P4EDITOR
指定的任何可执行文件都将使用临时文件名调用;一旦 P4EDITOR
退出,修改后的规范将(从临时文件)上传。