2011-11-12 2 views
2

안녕하세요, 파이썬 요청 라이브러리 (http://docs.python-requests.org/en/latest/index.html)를 사용하여 텍스트 파일을 게시하는 데 문제가 있습니다. 내가 잘못하고있는 것을 알려주시겠습니까?파이썬 요청 라이브러리를 사용하여 텍스트 파일 게시

관련 질문을 검색하고이 Send file using POST from a Python script을 찾았지만 내 질문에 대답하지 않습니다.

import codecs 
import requests 

# Create a text file 
savedTextFile = codecs.open('mytextfile.txt', 'w', 'UTF-8') 

# Add some text to it 
savedTextFile.write("line one text for example\n and line two text for example") 

# Post the file THIS IS WHERE I GET REALLY TRIPPED UP 
myPostRequest = requests.post("https://someURL.com", files=savedTextFile) 

나는 위의 몇 가지 변화를 시도하고 난 아무데도 (새로운 오류마다)받지 못했습니다 :

여기 내 코드입니다. 방금 만든이 txt 파일을 게시하려면 어떻게합니까? 게시하려고하는 API에는 텍스트 파일을 게시해야합니다.

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

답변

5

files 매개 변수는 파일 처리기와 일치하는 파일명을 요구합니다. 이것은 소스 코드에 설명되어 있습니다 (현재 69 라인) :

Github Source (requests/models.py)

#: Dictionary of files to multipart upload (``{filename: content}``). 
self.files = files 

때로는 가장 좋은 문서는 코드입니다.

귀하의 마지막 행은 다음과 같이한다 :

myPostRequest = requests.post("https://someURL.com", files={'mytextfile.txt': savedTextFile}) 
+0

는 정말 고마워요! 이제 작동 중입니다 –

+0

필자는 필자가 작성한 파일 만 열어 놓았 기 때문에 필자는 필자의 대답에 더 많은 것을 추가 할 예정이었습니다. 요청을 실제로 파일을 읽을 수 있으려면 파일을 읽고 쓰기 위해 열어야합니다. 또한 텍스트 작성이 끝나면 '찾기'를 0으로 재설정해야합니다. 이 목적이 로컬 파일로 끝나지 않고 텍스트를 파일로 게시하는 것이고 실제 파일이 끝까지 사용되는 것이라면 Python 표준 라이브러리의 StringIO 모듈을 사용하여 텍스트를 작성하는 것이 좋습니다 . 그것은 파일처럼 행동 할 것이지만 완전히 기억에 남을 것입니다. – sudorandom

관련 문제