我正在使用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")
答案 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