Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, tudo bem?
Sou novo no python. Estou tentando criar um script para buscar as imagens que estão no computador.
O erro que esta dando é:
c:\PythonPRJ\ImageSearch>python ImageSearch.py
File "ImageSearch.py", line 32
lookupDirectory("C:\\")
^
SyntaxError: invalid syntax
Eis meu script:
import os
def getExtension(filename):
fileName, fileExtension = os.path.splitext(filename)
return fileExtension
def inArray(array, to_look):
for x in array:
if(to_look[1:] == x):
return True
return False return True
return False
def lookupDirectory(directory):
arquivos = os.listdir(os.path.expanduser(directory))
for arquivo in arquivos:
if(isImage(arquivo)):
print arquivo
if(os.path.isdir(arquivo)==True):
return lookup(directory + "\\" + arquivo
lookupDirectory("C:\\")
Podem me ajudar?
Obrigado.
Nossa, que erro besta, falta de atenção =/
Mas obrigado.
Agora está quase tudo certo. Poderia me ajudar em mais uma coisa?
Ele esta dando acesso negado ao acessar certas pastas (mesmo executando como administrador)
C:\Documents and Settings
Traceback (most recent call last):
File "C:\PythonPRJ\ImageSearch\ImageSearch.py", line 28, in <module>
lookupDirectory("C:\\")
File "C:\PythonPRJ\ImageSearch\ImageSearch.py", line 26, in lookupDirectory
lookupDirectory(arquivo)
File "C:\PythonPRJ\ImageSearch\ImageSearch.py", line 19, in lookupDirectory
arquivos = os.listdir(os.path.expanduser(directory))O código
import os
def getExtension(filename):
fileName, fileExtension = os.path.splitext(filename)
return fileExtension
def inArray(array, to_look):
for x in array:
if to_look[1:] == x:
return True
return False return True
return False
def lookupDirectory(directory):
arquivos = os.listdir(os.path.expanduser(directory))
for arquivo in arquivos:
#if isImage(arquivo):
#print arquivo
if os.path.isdir(directory + arquivo) == True:
arquivo = directory + arquivo
print arquivo
lookupDirectory(arquivo)
lookupDirectory("C:\\")
Se você colocar um tratamento de exceção p/ capturar o WinError que é lançado, vai ver que dá pau quando o sistema tenta ler um arquivo/diretório chamado ..
Isso não dá certo mesmo.
Tente resolver esse problema e depois "disseque" a versão seguinte:
extensions = ['jpeg', 'jpg', 'jpe', 'tga', 'gif', 'tif', 'bmp', 'rle', 'pcx', 'png', 'mac', 'pnt', 'pntg', 'pct', 'pic', 'pict', 'qti', 'qtif']
root = 'C:\\Users\\Isis'
import os
walk_gen = os.walk(root)
for root,dirs,files in walk_gen:
for ext in extensions:
images = [os.sep.join([root, cur_file]) for cur_file in files if cur_file.endswith('.{0}'.format(ext))]
if images:
print images
Isis, demorei pra responder mas estou de volta =)
Consegui fazendo isso:
import os
def getExtension(name):
fileName, fileExtension = os.path.splitext(name)
return fileExtension
def isExtensionPermited(extension):
extensions = ['jpeg', 'jpg', 'jpe', 'tga', 'gif', 'tif', 'bmp', 'rle', 'pcx', 'png', 'mac', 'pnt', 'pntg', 'pct', 'pic', 'pict', 'qti', 'qtif']
for x in extensions:
if extension[:1] == '.':
if extension[1:].lower() == x:
return True
elif extension.lower() == x:
return True
return False
def lookupDirectory(path):
if os.path.isdir(path):
files = os.listdir(path)
for i in files:
if i + '/' != 'windows/':
if os.path.isdir(path + i + '/'):
lookupDirectory(path + i + '/')
if isExtensionPermited(getExtension(i)) == True:
print i
Quanto ao seu código vou estuda-lo mais tarde, pois testei e não consegui executa-lo.
Estou dissecando o código, muito obrigado pela ajuda. Consegui entende-lo em parte. Será de grande ajuda para meus estudos.
Obrigado.
Não é necessário encher de parênteses os ifs.
Está dando erro porque você não fechou os parênteses do return.