#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»).