Удалить .htaccess с помощью Python ftplib

#python #.htaccess #ftp #ftplib

#python #.htaccess #ftp #ftplib

Вопрос:

Я пытаюсь добавить функциональность FTP в мой скрипт на Python 3, используя только ftplib или другие библиотеки, которые включены в Python. Скрипту необходимо удалить каталог с FTP-сервера, чтобы удалить активную веб-страницу с нашего веб-сайта.

Проблема в том, что я не могу найти способ удалить файл .htaccess с помощью ftplib, и я не могу удалить каталог, потому что он не пуст.

Некоторые люди говорили, что это скрытый файл, и объяснили, как составить список скрытых файлов, но мне нужно удалить файл, а не перечислять его. Мой файл .htaccess также имеет полные разрешения, и его можно успешно удалить с помощью большинства других FTP-клиентов.

Пример кода:

 files = list(ftp.nlst(myDirectory))     
for f in files:
    ftp.delete(f)

ftp.rmd(myDirectory)
  

Обновление: мне удалось заставить все работать правильно, вот полный код:

 ftp.cwd(myDirectory)  # move to the dir to be deleted

    #upload placeholder .htaccess in case there is none in the dir and then delete it
    files01 = "c:\files\.htaccess"
    with open(files01, 'rb') as f:  
        ftp.storlines('STOR %s' % '.htaccess', f)

    ftp.delete(".htaccess")
    print("Successfully deleted .htaccess file in "   myDirectory)


    files = list(ftp.nlst(myDirectory))     # delete files in dir
    for f in files:
        ftp.delete(f)
    print("Successfully deleted visible files in "   myDirectory)

    ftp.rmd(myDirectory)  # remote directory deletion 
    print("Successfully deleted the following directory: "   myDirectory)
  

Комментарии:

1. «нужно удалить файл, а не перечислять его» — Я не думаю, что вы здесь правы. Я предполагаю, что при вызове ftp.delete(".htaccess") файл будет удален , верно? Ваша проблема в том, что nlst не отображается файл.

2. Кажется, вы правы! Я думаю, единственная причина, по которой я не смог удалить файл, заключалась в том, что я пытался сделать что-то вроде этого: ftp.delete («/htdocs/test/somedir/.htaccess») вместо ftp.cwd (/htdocs/test/somedir/), за которым следует ftp.delete («.htaccess»).