Я застрял в части моего скрипта, который должен выполнять следующее: a. Итерации через исходный каталог. b. Переместите каждый файл (имя = расширение GUID.file) в папку назначения, названную в качестве руководства этого файла.перемещение файлов с нетрадиционными расширениями файлов в Python
Теоретически эта проблема достаточно проста для решения на Python с помощью os.walk() и os.rename(). Сложность заключается в том, что расширение файла для некоторых из этих файлов является нетрадиционным, как показано на скриншоте:
В качестве обходного пути, я с помощью Commons.IO Java библиотеки. Тем не менее, мой скрипт ошибочен в последних трех строках, когда я пытаюсь создать экземпляр объектов File. Что я делаю не так?
Сценарий:
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)
Что это странная смесь Java и Python синтаксис? –
@AndrewMedico OP использует [Jython] (http://www.jython.org/), который, как вы уже догадались, работает вместе с python и Java – smac89