Я хочу найти файлы в хранилище Perforce.
Я делаю это из скрипта python и использую команду библиотеки p4python
:
list = p4.run("files", "//mypath/myfolder/*")
Это нормально работает, если myfolder
содержит несколько файлов. Я получаю python list
в качестве возвращаемого значения. Но когда в myfolder
нет файла, программа перестает работать и сообщение об ошибке не отображается. Моя цель - получить пустой Python list
, чтобы я мог видеть, что в этой папке нет файлов.
У кого-нибудь есть идеи? Мне не удалось найти информацию в документации по файлам p4
и на StackOverflow.
🤔 А знаете ли вы, что...
Python используется в разработке игр с помощью библиотеки Pygame.
Попробовать что-нибудь подобное?
import os
if len(os.listdir('//mypath/myfolder/') ) == 0: # Do not execute p4.run if directory is empty
list = []
else:
list = p4.run("files", "//mypath/myfolder/*")
Я собираюсь предположить, что у вас есть обработчик исключений, связанный с выполнением этой команды, который поглощает исключение и завершает работу. Я написал очень простой тестовый скрипт и получил следующее:
C:\Perforce\test>C:\users\samwise\AppData\local\programs\python\Python36-32\python files.py
Traceback (most recent call last):
File "files.py", line 6, in <module>
print(p4.run("files", "//depot/no such path/*"))
File "C:\users\samwise\AppData\local\programs\python\Python36-32\lib\site-packages\P4.py", line 611, in run
raise e
File "C:\users\samwise\AppData\local\programs\python\Python36-32\lib\site-packages\P4.py", line 605, in run
result = P4API.P4Adapter.run(self, *flatArgs)
P4.P4Exception: [P4#run] Errors during command execution( "p4 files //depot/no such path/*" )
[Error]: "//depot/no such path/* - must refer to client 'Samwise-dvcs-1509687817'."