2013-08-17 1 views
2

나는 함수 (가) 파일 객체를 기대하고, 간단한 예를 가지고 :파일 내용을 파일 개체로 변환 할 수 있습니까?

fd = open('myfile', mode='r') 
process(fd) 

나는이 기능을 변경할 수 있으며, 이미 내용을 가지고 : 일반적으로 호출됩니다

def process(fd): 
    print fd.read() 

파일을 메모리에 저장합니다. StringIO를 사용

contents = 'The quick brown file' 
fd = convert(contents) # ?? 
process(fd) 

답변

6

당신은이 작업을 수행 할 수 있습니다 :

이 모듈은 구현 그래서 나는 이런 식으로 뭔가를 할 수있는 디스크를 작성하지 않고 파일 객체로 파일 내용을 convert 수있는 방법이 있나요 파일과 비슷한 클래스 인 StringIO는 읽고, 은 문자열 버퍼 (메모리 파일이라고도 함)를 씁니다. 당신이 from io import StringIO 대신 from StringIO import StringIO 사용해야합니다 - 파이썬 3가 io 패키지로 이동되었다

from StringIO import StringIO 

def process(fd): 
    print fd.read() 

contents = 'The quick brown file' 

buffer = StringIO() 
buffer.write(contents) 
buffer.seek(0) 

process(buffer) # prints "The quick brown file" 

참고.

+1

파이썬 3에서는'io' 모듈로 옮겨졌습니다. – icktoofay

+0

@icktoofay 좋은 지적, 고마워. – alecxe

관련 문제