我知道有人问过类似的问题,但是在任何人说什么之前,我已经花了将近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()