AttributeError: 'str' object has no attribute 'readline'
Делал скрипт для изменения определенных строчек в файлах index.html и index.php по ftp. Фрагмент кода:
for f in files:#
if '.' not in f: # Если нету точки в название,то есть является точкой
ftp.cwd(f) # изменяем директорию
print(ftp.pwd())#вывод новой директории
try:
files2nd = ftp.nlst()
except ftplib.error_perm as resp: #Защита от ошибке из-за пустой директории
if str(resp) == "550 No files found":
print("No files in this directory")
else:
raise
for f2 in files2nd:
print(f2)
if 'index.' in f2: #Если
outfile = 'D:/ftpchanger/temp/' + str(f2) # Путь на нашем компьютере где сохранить файл.
with open(outfile , 'wb') as fi:
ftp.retrbinary('RETR ' + str(f2), fi.write)
fi.close()
if '.php' in f2: #Если файл имеет расширение php
fi = open('D:/ftpchanger/temp/' + str(f2),'r+')
fi.write('\n')
ftp.storlines('STOR ' + f2, fi)
fi.close
time.sleep(1) # Сон в 1 секунду
if '.html' in f2: #Если файл имеет расширение html
fi = open('D:/ftpchanger/temp/' + str(f2),'r+').read().replace('</html>','\n</html>')
ftp.storlines('STOR ' + f2, fi)
time.sleep(1) # Сон в 1 секунду
ftp.cwd(defdir) # возвращение первоначальной директории
Переменные:
files - список всех файлов на сервере,включая папки,
defdir - первоначальный каталог сервера.
По итогу выводит ошибку:
Traceback (most recent call last):
File "d:\ftpchanger\main.py", line 79, in <module>
ftp.storlines('STOR ' + f2, fi)
File "D:\Python\lib\ftplib.py", line 526, in storlines
buf = fp.readline(self.maxline + 1)
AttributeError: 'str' object has no attribute 'readline'
Может, кто-то сталкивался с подобным и знает решение? Заранее благодарю!