0

каким образом надо сделать ,чтобы файл который я скачиваю с ftp записывался в конкретную директорию ,а не туда где храниться файл исполнителя?

import ftplib
host = "*"
ftp_user = "*"
ftp_password = "*"
filename = "picture.png"
con = ftplib.FTP(host, ftp_user, ftp_password)
lf = open(filename, "wb")
con.retrbinary("RETR " + filename, lf.write)
lf.close()

сохранение файла в другую папку не так C:\Users\\Desktop\try\d а так /d

Twiss
  • 6,393
  • Допишите путь к переменной filename, что то типа filename = "dir/nextdir/picture.png" таким образом файл сохраниться в директорию dir/nextdir/ – Игорь Игоряныч Oct 30 '17 at 00:21
  • @Игорь Игоряныч разве filename это не название файла на ftp? – Twiss Oct 30 '17 at 03:01
  • @ИгорьИгоряныч мне нужно не на ftp а с ftp в конкретную директорию на диске – Twiss Oct 30 '17 at 05:18

1 Answers1

1

У вас filename это и удалённое и локальное имя. Чтобы только локальный путь изменить, чтобы скачать файл в другую директорию, просто явно укажите путь:

import os 

with ftplib.FTP(host, *credentials) as ftp, \
     open(os.path.join("директория", filename), "wb") as file:
    ftp.retrbinary("RETR " + filename, file.write)
jfs
  • 52,361
  • а можно как нибудь не полный путь писать а по типу в подпапку корневой папки программы отредактировал вопрос – Twiss Oct 30 '17 at 06:31
  • да и по сути модер удалил мой подобный ответ написав "Это как-то с ftp связано?" – Twiss Oct 30 '17 at 06:32
  • 1
    @Дмитрий можно. Вместо строки "директория" вы можете и полный путь указать и относительно текущей директории. См. Текущая директория в Python. Ваш вопрос по сути к ftp никак не относится: "Как создать файл в указанной папке" – jfs Oct 30 '17 at 07:38