I'm trying to iterate through a group of files in a folder on my local machine and upload only ones where the file names contain "Service_Areas" to my FTP site using using this code (Python 3.6.1 32 bit, Windows 10 64 bit):

ftp = FTP('ftp.ftpsite.org') username = ('username') password = ('password') ftp.login(username,password) ftp.cwd(username.upper()) ftp.cwd('2017_05_02') for i in os.listdir('C:\FTP_testing'): if i.startswith("Service_Area"): local_path = os.path.join('C:\FTP_testing',i) file = open(local_path,'rb') ftp.storbinary("STOR " + i, open(file, 'rb')) file.close() continue else: print('nope') ftp.quit() 

but I am getting this error:

Traceback (most recent call last): File "C:\Users\user\Desktop\Test1.py", line 32, in <module> ftp.storbinary("STOR " + str(i), open(file, 'rb')) TypeError: expected str, bytes or os.PathLike object, not _io.BufferedReader 

Any suggestions?

0

1 Answer

I think it has to do with your second element in storbinary. You are trying to open file, but it is already a pointer to the file you opened in line file = open(local_path,'rb'). So, try to use ftp.storbinary("STOR " + i, file).

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy