我被困在脚本的一部分应该执行以下操作:遍历源目录。湾。将每个文件(名称 = GUID.file 扩展名)移动到名为该文件的 guid 的目标文件夹。
理论上,这个问题很简单,可以在 Python 中使用 os.walk() 和 os.rename() 来解决。复杂的是,其中一些文件的文件扩展名是非常规的,如下图所示:
作为一种解决方法,我使用 Commons.IO Java 库。然而,当我尝试实例化 File 对象时,我的脚本在最后 3 行出错。我究竟做错了什么?
脚本:
import os
import codecs
import shutil
import datetime
import sys
from org.apache.commons.io import FileUtils
from org.apache.commons.io.filefilter import TrueFileFilter
from java.io import File
sourceDirectoryRoot = 'P:/Output/Export18/BAD'
sourceDirectory = sourceDirectoryRoot + '/NATIVES'
for source in FileUtils.iterateFiles(File(sourceDirectory),TrueFileFilter.INSTANCE,TrueFileFilter.INSTANCE):
path = source.getPath().replace('\\', '/')
file = source.getName()
fileparts = path.split(".")
ext = fileparts[len(fileparts) - 1]
destDirectory = sourceDirectoryRoot + '/{' + file[0:36] + '}/' + '[Document Renamed].' + ext
print path
print destDirectory
File s = new File(path)
File d = new File(destDirectory)
FileUtils.moveFile(s, d)
错误(部分字符串):
Script failed due to an error:
File "<script>", line 21
File s = new File(path)
^
SyntaxError: no viable alternative at input 's'
at org.python.core.ParserFacade.fixParseError(ParserFacade.java:92)