Je suis en train de trouver la taille totale du fichier d'un serveur ftp avec le script suivant:En utilisant os.walk pour trouver la taille totale du serveur FTP
import os
import ftplib
from os.path import join, getsize
serveradd = ("an.ftpserver.co.uk") # Define the ftp server
print("Logging in to "+serveradd+"\n")
top = os.getcwd() # Define the current directory
filelist = []
for (root, dirs, files) in os.walk(top): # Get list of files in current directory
filelist.extend(files)
break
dirname = os.path.relpath(".","..") # Get the current directory name
ftp = ftplib.FTP(serveradd)
try: # Log in to FTP server
ftp.login("username", "password")
except:
"Failed to log in..."
ftp.cwd('data/TVT/') # CD into the TVT folder
print("Contents of "+serveradd+"/"+ftp.pwd()+":")
ftp.retrlines("LIST") # List directories on FTP server
print("\n")
print(ftp.pwd())
print(serveradd+ftp.pwd())
size = 0
for (root, dirs, files) in os.walk(ftp.pwd()):
for x in dirs:
try:
ftp.cwd(x)
size += ftp.size(".")
ftp.cwd("..")
except ftplib.error_perm:
pass
print(size)
Tout fonctionne jusqu'à ce que j'essaie d'utiliser os. Marcher pour trouver la liste des répertoires sur le serveur FTP, utilisez ftp.cwd pour aller dans chaque répertoire et ajouter la taille totale à la variable "taille". Lorsque j'appelle print (size), le résultat est 0, alors qu'il devrait s'agir d'un entier positif. Est-ce qu'il me manque quelque chose avec la combinaison de os.wallk et de ftp.pwd?
Avez-vous besoin d'utiliser ftp.cwd (os.path.join (root, x))? – AK47
Copie possible de [Obtenir la taille du dossier en utilisant FtpLib] (https://stackoverflow.com/questions/22090001/get-folder-size-using-ftplib) –