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'

Может, кто-то сталкивался с подобным и знает решение? Заранее благодарю!


Ответы (0 шт):