2013-05-17 2 views
0

제가 잘못하고있는 것을 모르지만이 작은 ftp 코드는 파일을 전송하지 않습니다. 나는 계속 간다.Python FTP가 전송되지 않습니다

파일 "example.py", 11 행? ftp.storlines ("STOR"+ 파일 열기 (파일))

ftplib.error_perm 550 /home/helen/docs/example.txt : 작업 여기

허용하지 코드이다

import ftplib 

file = '/home/helen/docs/example.txt'  
ftp = ftplib.FTP('domain', 'user', 'password') 
print "File List: " 
files = ftp.dir() 

ftp.cwd("/upload/") 

ftp.storlines("STOR " + file, open(file)) 

f.close()        
s.quit() 

어떤 도움을 주시면 감사하겠습니다.

답변

6

내가 얻는 오류는 storlines() 호출의 첫 번째 인수에 전체 파일 경로를 추가한다는 것입니다. 대신, 그냥 파일 이름 자체 지정 : 그 (정말 무엇인지 이후

import os 
ftp.storlines("STOR " + os.path.basename(file), open(file)) 

당신은, filepathfile을 변경하는 것을 고려할 수 있습니다 더하기 더 이상 동일한의 내장 기능 & 유형을 숨기고되지 않습니다 이름).

+0

고마워요 @martineau - 월요일에 사무실로 돌아 왔을 때 코드를 확인해 보겠습니다. 집에서 서버에 액세스하지 마십시오. –

+0

@Helen : 원래의 대답은 완전히 잘못된 트랙이었습니다. 기회가있을 때 수정 된 버전을 사용해보십시오. 팁을 주신 덕분에 – martineau

+0

. 단지 전체 경로 대신 파일 이름을 호출하는 것이 트릭을 만들었습니다. 신난다. 다시 한 번 감사드립니다 :) –

0

550 오류는 말 그대로 위키 백과에 따르면 "550 요청 된 조치가 취해지지 않았습니다. 파일을 사용할 수 없습니다 (예 : 파일을 찾을 수 없음, 액세스하지 않음)."

http://en.wikipedia.org/wiki/List_of_FTP_server_return_codes

당신은 당신이 올바른 권한이 있는지입니까?

ftp = ftplib.FTP('domain') 
ftp.login('user','pass') 

내가 객체 생성 단지 있었다 조금 올려요 생각하려고합니다.

+0

관련 권한이 있습니다. ftp 디렉토리에 777 개의 권한이 있습니다. 누구나 업로드하고 읽을 수 있다는 것을 의미합니다 (테스트 용) –

+0

은 공개 또는 개인 FTP입니까? 올바르게 입력 된 도메인입니까? 만약 당신이 550을 얻고 있다면, 그것은 뭔가 잘못되었다고 생각합니다. .... 정말로 빠른 것을 확인하십시오 .... 'ftp = ftplib.FTP ('domain')'그 다음에'ftp.login ('user', '패스')'당신이 실제로 아무 것도 쓰지 않으려 고 생각하면 550에 대한 좋은 이유가 될 것입니다. – TehTris

+0

안녕하세요, 제게 감사합니다. 월요일에 귀하의 제안을 시도하고 모두에게 결과를 알리십시오. –

관련 문제