Portál AbcLinuxu, 9. května 2024 20:22


Dotaz: python ftplib - presun suboru na vzdialenom serveri

disposable avatar 3.8.2009 18:24 disposable | skóre: 23
python ftplib - presun suboru na vzdialenom serveri
Přečteno: 146×
Odpovědět | Admin

Potrebujem kratky skript, ktory stiahne subor zo serveru a potom ho na vzdialenom serveri presunie do novovytvoreneho adresara. Vsetko funguje ako ma, ale pri pokuse o presun dostanem: 

Traceback (most recent call last):
  File "./ftpdownload.py", line 31, in <module>
    ftp.rename(item, newpath/item)
TypeError: unsupported operand type(s) for /: 'str' and 'str'

 

Co v tom robim zle?

 

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import os
import datetime
from ftplib import FTP

path = 'recordings'

try:
    os.mkdir(path)
except OSError:
    pass

os.chdir(path)

ftp = FTP('some.domain.name')
ftp.login('tester', 'testerPassword')
list = ftp.nlst()
count = len(list)

now = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
newpath = 'downloaded_on_' + now
ftp.mkd(newpath)

for item in list:
    file = open(item, 'wb')
    ftp.retrbinary("RETR " + item, file.write)
    print(count, 'files to download.')
    count -= 1
    ftp.rename(item, newpath/item)

ftp.close()

if it ain't broke, don't fix it
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.8.2009 19:59 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: python ftplib - presun suboru na vzdialenom serveri
Odpovědět | | Sbalit | Link | Blokovat | Admin

Python si myslí, že chceš podělit řetězec řetězcem.

Možná jsi na tom řádku chtěl napsat spíš newpath + '/' + item anebo ještě lépe os.path.join(newpath, item).

 

3.8.2009 20:08 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: python ftplib - presun suboru na vzdialenom serveri

A ještě něco. Hodilo by se vymyslet jiné názvy pro proměnné „list“ a „file“, aby se nepřepsal jejich původní význam.

disposable avatar 4.8.2009 10:31 disposable | skóre: 23
Rozbalit Rozbalit vše Re: python ftplib - presun suboru na vzdialenom serveri

Aj za tieto pripomienky dakujem, neuvedomil som si, ze si vytvaram blby navyk.

if it ain't broke, don't fix it
disposable avatar 4.8.2009 10:30 disposable | skóre: 23
Rozbalit Rozbalit vše Re: python ftplib - presun suboru na vzdialenom serveri

ftp.rename(item, newpath + '/' + item)

Funguje presne ako ma, dakujem.

if it ain't broke, don't fix it

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.