P4Python运行方法对空文件夹不起作用

问题描述 投票:0回答:2

我想在Perforce仓库中搜索文件。我从python脚本执行此操作并使用p4python库命令:

list = p4.run("files", "//mypath/myfolder/*")

只要myfolder包含一些文件,这就可以正常工作。我得到一个python list作为返回值。但是当myfolder中没有文件时,程序停止运行并且不显示错误消息。我的目标是得到一个空的python list,这样我就可以看到这个文件夹不包含任何文件。

有人有想法吗?我在p4文件文档和stackoverflow中找不到相关信息。

先感谢您!雅各布

python perforce p4python
2个回答
0
投票

我猜你有一个关于该命令执行的异常处理程序正在吃异常并退出。我写了一个非常简单的测试脚本并得到了这个:

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'."

0
投票

尝试这样的事情?

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/*")
© www.soinside.com 2019 - 2024. All rights reserved.