如何遍历本地目录,并将所有文件上传到FTP

时间:2019-01-18 21:04:30

标签: python ftp

我知道有人问过类似的问题,但是在任何人说什么之前,我已经花了将近4天的时间阅读我可以在google上找到的所有文档。他们都没有为我的目的工作。因此,我被分配了一个任务,事实证明这是个问题。这个应用程序还有很多,但这就是我遇到的问题。

如何遍历本地驱动器上的所需目录,然后将其发送到FTP?  现在,我真正需要做的是编写一个脚本,该脚本遍历一堆mp3,执行(其他操作),然后将其上载到单独/远程FTP上的所需目录。现在,我已经能够一次无问题地处理1个文件。但是,当我将它放入for循环中时,上传的代码不起作用?请参考下面的代码,让我知道我在做错什么,以及如何正确实现?我只是基本上停留在将多个文件移动到FTP上。任何帮助都将不胜感激。

我一直收到的错误是:文件不存在? 另外,请原谅所有其他注释掉的代码,我将其保留下来以展示我尝试过的其他尝试。不用担心newFolderName,这是我需要做的比较事情。

from ftplib import FTP, error_perm
import ftplib
import os, sys
from datetime import datetime
from string import Template
from os.path import exists
import shutil

# #Show whats in FTP:
# data = []
# ftp.dir(data.append)
# #Close FTP Connection:
# ftp.quit()
# # Print a list of all directories of said FTP Connection:
# for line in data:
#     print("-", line)

#--------------------------------------

desiredFolder= "C:\\Users\\MYUSER\\Desktop\\PythonScripts\\new\\"
transferDest = "\\testTransfer\\"

# Login To  ClientFTP  -----------
ftp = FTP(ftp_host)
serverConnect = ftp.login(user=ftp_user_name, passwd = ftp_user_pass)
if(serverConnect):
    print("Login Successful!")
else: print("Login Failed!")
ftp.cwd(transferDest) # Directory to look in/go to
filename = "test.mp3"
ftp.storbinary("STOR " + filename, open(filename, "rb"))

files = []
files = ftp.nlst()
for name in files:
    ftp.storbinary('STOR ' + name, open(name,'rb'))

# Move FOlder To FTP:
#NOTE TRY DIFF FOR LOOP!!! IT MAY BE BECUASE ITS STUCK TO OS< LOCAL???********
for file in os.listdir(desiredFolder):
        filename = os.fsdecode(file)
        if filename.endswith(".mp3"): 

            ftp.storbinary('STOR ' + filename, open("\\testTransfer",'rb'))


            #LEGIT-------------
            # # Check if folder exists, if it doesn't create it.
            # if not(os.path.exists(newFolderName)):
            #     ftp.mkd(newFolderName)
            #     print("Created Folder!")
            # else: 
            #     print("Already Exists!")
            #     print("Attempting movement...")
            # if os.path.exists(newFolderName):
            #     print("Files Successfully Moved")
            #     # Move the file :
            #     os.rename("C:\\Users\\USER\\Desktop\\PythonScripts\\{desiredFolder}\\{filename}".format(filename=filename, desiredFolder=desiredFolder), "\\{newFolderName}\\{filename}".format(filename=filename,newFolderName=newFolderName))
            # else:
            #     print("Failed to move files!")

#Close FTP Connection:
ftp.quit()

0 个答案:

没有答案