У вас, похоже, отсутствует отступ для вашего tweet_photos
метода.Без этого отступа интерпретатор не сможет сказать, где метод начинается и заканчивается.
Кроме того, вы пытаетесь перебрать str
.В этом случае значением x
будет каждый отдельный символ в этой строке.Вы можете проверить это, запустив следующий код в интерпретаторе Python:
imagePaths = "E:\Fotosprueba"
for x in imagePaths:
print(x)
Вывод:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
E
:
\
F
o
t
o
s
p
r
u
e
b
a
Судя по всему, вы можете передать значение этой строкивместо getPathsFromDir
метода.Попробуйте это:
def getPathsFromDir(dir, EXTS="extensions=,png,jpg,jpeg,gif,tif,tiff,tga,bmp"):
return this.listPaths(dir, EXTS) # This now uses the value of dir
def tweet_photos(api):
imagePaths = "E:\Fotosprueba"
# This now passes imagepaths to the getPathsFromDir method,
# and *should* return a list of files.
for x in getPathsFromDir(imagePaths):
status = "eeeee macarena"
try:
api.update_with_media(filename=x,status=status)
print ("Tweeted!")
sleep(10)
except Exception as e:
print ("encountered error! error deets: %s"%str(e))
break
Теоретически это должно работать как задумано, если ваш класс также включает метод listPaths
.Если это не так, вам нужно изменить, чтобы включить этот метод, или изменить вызов на this.listpaths
, чтобы он указывал куда-то еще.