P4 Python错误:文件不在客户端上

时间:2013-07-16 20:29:07

标签: python perforce

我正在使用p4 Python模块尝试打开几个文件进行编辑。基本上我有一个文件列表,我从txt文件中获取。然后,我对列表中的每个项目进行一些格式化,并将这些项目附加到空列表中。我的方法不是最有效的,但我只是想在优化之前使其工作。

edit_files = []

with open('C:\\Users\\rgriffin\Desktop\\replace.txt', 'r' )as f:
    for line in f:
        l = line.partition(',')[0]
        e = l.replace('#(', '')
        r = e.replace('U:\\', '//Stream/main/')
        q= r.replace('\\', '/')
        edit_files.append(q)
f.close

for i in edit_files:
    p4.run("edit" , i) 

使用此代码我收到错误:

  

[警告]:'“//”//Stream/main/Data/anims/stuff/char/Emotion_Angry.hkx“ - 文件不在客户端。'

如果我将最后一行更改为此...

p4.run("edit" , "//Stream/main/Data/anims/stuff/char/Emotion_Angry.hkx") 

按预期检出文件。我做了类型检查,i是一个字符串。

输入数据:

#("U:\Data\anims\stuff\char\Emotion_Angry_Partial.hkx", "u:\Assets\Actors\stuff\char\Animation\char_Idle.max")

1 个答案:

答案 0 :(得分:1)

在以下命令中,末尾有引号字符。删除它们。也似乎有空行。 变化

for i in edit_files:
    p4.run("edit" , i) 

for i in edit_files:
    f=i.replace('"','').strip()
    if len(f)>0:
      print "Opening  ["+f+"]"
      p4.run("edit" , f) 

或One liner

[p4.run("edit" , i.replace('"','').strip()) for i in edit_files if i.strip()]

或者您可能想要更改填充代码本身: 使用:

with open('C:\\Users\\rgriffin\Desktop\\replace.txt', 'r' )as f:
    for line in f:
        l = line.partition(',')[0].replace('#(', '').replace('U:\\', '//Stream/main/').replace('\\', '/').replace('"', '').strip()
        if len(l)>0:
            edit_files.append(l)
f.close