2009-10-07 5 views
1

좋은 파이썬 ftp 클라이언트/서버 라이브러리를 찾고 있습니다. 나는 "ftolib/urllib/urllib2"의 맨 위에 작은 http/ftp 라이브러리를 "진화"시킨 프로젝트에서 일하고있다. 원래는 하나의 함수 였고 거의 빌드되지 않았다. 이제 리팩터링 할 때가되었습니다. 도서관으로 전환하고 싶습니다. 내가 가장 다루기 싫은 것은 강건 - 재시도 논리 (15 회 재 시도, 12pm 재 시도)입니다.좋은 고수준 python ftp/http lib?

우리가 지금 가지고있는 문제는 약 10 개의 개별 grab()put() 기능이 있다는 것입니다. 심미적으로 말하자면, 나는 try_until=datetime(2009, 10, 7, 19) 또는 retrys=15 라인을 따라 선택적 인수를 사용하는 것이 좋습니다. 우리는 바이너리와 텍스트 데이터로 작업하기 때문에, 함수는 그것에 대해 합리적으로 똑똑해야합니다. 그리고 우리는 퍼팅하는 것보다 더 많이 잡을 수 있습니다. 그래서 나는 그 퍼팅없이 처리 할 수 ​​있습니다.

urlgrabber은 내가 원하는 것처럼 보이지만, 지난 몇 년 동안 어떤 발전도 없었던 것 같고 2.6과 얼마나 호환되는지 잘 모르겠습니다. 아무도 이것에 대해 많은 경험이 있습니까? 아니면 의견?

+0

클라이언트 측 또는 서버 측? pyCURL을 언급 했으므로 FTP 클라이언트 라이브러리를 찾고 있습니다. 그 점을 분명히하십시오. 또한 urllib2의 문제점을 설명하십시오. –

+0

그게 도움이 되었습니까? urllib2에는 "잘못된"것이 없습니다. 내 인생을 더 편하게 해주고 싶습니다. – quodlibetor

+0

@quodlibetor : 아니요, 전혀 도움이되지 않았습니다. 왜 당신이 원하는 것을하고 urllib2를 사용하는 함수를 작성할 수 없습니까? 나는 아직도 문제가 실제로 무엇인지 알아낼 수 없다. –

답변

4

URLgrabber는 매우 성숙한 것으로 보이며, yum (및 많은 유닉스 시스템)에서 사용되기 때문에 매우 안정적 일 것으로 기대됩니다. Python 2.x는 대부분 이전 버전과 호환됩니다. 몇 가지 경고가 발생할 수 있지만 Python 2.6에서 제대로 작동 할 것으로 기대됩니다.

+0

네, 테스트 해봤는데 잘 작동하는 것 같습니다.하지만 좀 긴장 되네요. 그리고 저는 YUM의 핵심 인 것이 2 년 만에 한 번도 커밋을하지 못했다는 것에 조금 놀랐습니다. 잘못된 저장소를보고있는 것이 아니라면 다른 저장소를 찾을 수 없습니다. – quodlibetor

+0

프로젝트에 최근 커밋이 있는지 여부는별로 중요하지 않습니다. 많은 성숙한 프로젝트는 기능이 완벽하고 버그가 누락 된 안정성 수준에 도달합니다. –

+0

이것은 지난 몇 주 동안 나를 위해 일해왔다. 그래서 굉장하다. – quodlibetor

0

작성중인 응용 프로그램의 종류에 따라 http 서버와 클라이언트 코드가 내장되어 있기 때문에 twisted python을 고려해야 할 수도 있습니다. 그러나 표준 프로 시저 파이썬 프로그래밍과는 상당한 차이가 있습니다.

트위스트의 큰 장점은 백그라운드에서 클라이언트 요청을 처리하고 재 시도를 처리하며 확장 성이 우수하다는 것입니다.

서버와 상호 작용하는 빠른 스크립트 업데이트

이 저기 serverfault 대답을 참조하십시오 https://serverfault.com/questions/66336/script-automation-login-enter-password-run-commands-save-output-locally

그것은 도구 expect

Expect is a tool for automating interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, etc. Expect really makes this stuff trivial. Expect is also useful for testing these same applications. And by adding Tk, you can also wrap interactive applications in X11 GUIs.

Expect can make easy all sorts of tasks that are prohibitively difficult with anything else. You will find that Expect is an absolutely invaluable tool - using it, you will be able to automate tasks that you've never even thought of before - and you'll be able to do this automation quickly and easily.

나에게 좋은 소리를 recomends!

+0

감사합니다. 이 질문에 대한 첫 번째 답변 중 하나는 (삭제 된 이후로) 내가 twisted. * something * .TPTP를 사용한다고 제안했습니다. 나는 그것을 보았고, 실제로는별로 좋지 않은 생각이었습니다. 왜냐하면 우리가 매번 얻을 때마다 막을 필요가 있기 때문입니다. 또한, 그것이 전문화되어있는 종류의 일을하지 않는다면 실제로 많은 추상화를 수행하지 않습니다. – quodlibetor

관련 문제