Закрытие документов во время выполнения

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

🤔 А знаете ли вы, что...
В Python есть инструменты для создания графиков и визуализации данных, такие как библиотеки Matplotlib и Seaborn.


33
1

Ответ:

Решено

Похоже, что на самом деле вы пытаетесь изменить пользовательскую спецификацию 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 /, чтобы избежать вызова редактора с временным файлом (другими словами, если вы скриптовый мазохист, ищущий уникальный Challenge) лучше всего переопределить P4EDITOR и указать ему на сценарий, который вы написали. Любой исполняемый файл, указанный P4EDITOR, будет вызван с именем временного файла; измененная спецификация будет загружена (из временного файла), как только P4EDITOR завершится.