Как я проверяю файл от по необходимости в Python?

В PowerShell будет намного проще:

(Get-ChildItem -File).BaseName

или

Get-ChildItem | ForEach-Object { 

В PowerShell будет намного проще:

[110]

или

[111]

Get-ChildItem можно заменить псевдонимами ls, [ 115] или dir и ForEach-Object можно заменить на %

Так что из cmd вы можете запустить любой из них для достижения цели

powershell -Com "(ls -File).BaseName"
powershell -Com (ls^ -File).BaseName
.BaseName }

Get-ChildItem можно заменить псевдонимами ls, [ 115] или dir и ForEach-Object можно заменить на %

Так что из cmd вы можете запустить любой из них для достижения цели

powershell -Com "(ls -File).BaseName"
powershell -Com (ls^ -File).BaseName

15
задан Matt Price 8 October 2008 в 18:33
поделиться

5 ответов

По необходимости имеет обертки Python вокруг их инструментов C/C++, доступных в двоичной форме для Windows и источнике для других платформ:

http://www.perforce.com/perforce/loadsupp.html#api

Вы найдете, что их документация API сценариев полезна:

http://www.perforce.com/perforce/doc.current/manuals/p4script/p4script.pdf

Использование API Python весьма схоже с клиентом командной строки:

PythonWin 2.5.1 (r251:54863, May  1 2007, 17:47:05) [MSC v.1310 32 bit (Intel)] on win32.
Portions Copyright 1994-2006 Mark Hammond - see 'Help/About PythonWin' for further copyright information.
>>> import P4
>>> p4 = P4.P4()
>>> p4.connect() # connect to the default server, with the default clientspec
>>> desc = {"Description": "My new changelist description",
...         "Change": "new"
...         }
>>> p4.input = desc
>>> p4.run("changelist", "-i")
['Change 2579505 created.']
>>> 

я проверю его из командной строки:

P:\>p4 changelist -o 2579505
# A Perforce Change Specification.
#
#  Change:      The change number. 'new' on a new changelist.
#  Date:        The date this specification was last modified.
#  Client:      The client on which the changelist was created.  Read-only.
#  User:        The user who created the changelist.
#  Status:      Either 'pending' or 'submitted'. Read-only.
#  Description: Comments about the changelist.  Required.
#  Jobs:        What opened jobs are to be closed by this changelist.
#               You may delete jobs from this list.  (New changelists only.)
#  Files:       What opened files from the default changelist are to be added
#               to this changelist.  You may delete files from this list.
#               (New changelists only.)

Change: 2579505

Date:   2008/10/08 13:57:02

Client: MYCOMPUTER-DT

User:   myusername

Status: pending

Description:
        My new changelist description
20
ответ дан 1 December 2019 в 01:11
поделиться

Можно хотеть проверить модуль P4Python. Это доступно на по необходимости сайт, и это делает вещи очень простыми.

2
ответ дан 1 December 2019 в 01:11
поделиться

Вот то, что я придумал:

import os

def CreateNewChangeList(description):
    "Create a new changelist and returns the changelist number as a string"
    p4in, p4out = os.popen2("p4 changelist -i")
    p4in.write("change: new\n")
    p4in.write("description: " + description)
    p4in.close()
    changelist = p4out.readline().split()[1]
    return changelist

def OpenFileForEdit(file, changelist = ""):
    "Open a file for edit, if a changelist is passed in then open it in that list"
    cmd = "p4 edit "
    if changelist:
        cmd += " -c " + changelist + " "
    ret = os.popen(cmd + file).readline().strip()
    if not ret.endswith("opened for edit"):
        print "Couldn't open", file, "for edit:"
        print ret
        raise ValueError
7
ответ дан 1 December 2019 в 01:11
поделиться

Модуль P4 Python Perforce, упомянутый в другом ответе, является способом пойти, но если установка этого модуля не является опцией, можно использовать флаг-G, чтобы помочь проанализировать вывод p4.exe:

p4 [ options ] command [ arg ... ]
    options:
            -c client -C charset -d dir -H host -G -L language
            -p port -P pass -s -Q charset -u user -x file
    The -G flag causes all output (and batch input for form commands
    with -i) to be formatted as marshalled Python dictionary objects.
4
ответ дан 1 December 2019 в 01:11
поделиться

Создание из p4python источника требует загрузки и извлечения p4 api, рекомендуемого для той версии. Например, при создании версии Windows XP x86 P4Python 2008.2 для activepython 2.5:

  • загрузите и извлеките и p4python и p4api
  • fixup setup.cfg для p4python для указания на p4api каталог.

Для открытия файлов для редактирования (делают контроль), на командной строке, см. 'p4 открытую справку'.

Можно проверить файлы, не делая changelist, если Вы добавляете файл к значению по умолчанию changelist, но это - хорошая идея сделать changelist сначала.

P4Python в настоящее время не компилирует для activepython 2.6 без Visual Studio 2008; обеспеченный освобождает, создаются с 2005 или 2003. Принуждение p4python для создания против mingw почти невозможно, даже с pexports python26.dll и reimp/reassembly обеспеченных .lib файлов в.a файлы.

В этом случае Вы будете, вероятно, скорее использовать подпроцесс и возвращать результаты p4, поскольку упорядоченный Python возражает. Можно записать собственную обертку команды, которая берет массив аргумента, создает и выполняет команды и возвращает словарь результатов.

Вы могли бы попытаться изменить все, тестирование, и на успехе, открыв файлы, которые отличаются с чем-то эквивалентным 'p4 разность-se//...'

3
ответ дан 1 December 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: