Закрытие документов во время выполнения - PullRequest
0 голосов
/ 06 сентября 2018

Я использую Python для создания скрипта для запуска команд Perforce в командной строке. Одна из команд открывает файл. Я хочу записать в конец файла, затем сохранить файл, а затем закрыть файл после. Я не знаю, как будет называться файл, он будет отличаться каждый раз, и команда запускается 5 или более раз при каждом запуске программы. Команда это: os.system('p4 user -f ' + name)

1 Ответ

0 голосов
/ 06 сентября 2018

Похоже, что вы на самом деле пытаетесь изменить пользовательскую спецификацию 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 выйдет.

...