나는 메모리에 전체 파일을 가져 오기 위해 노력하고있어하지만 난 볼 수 이러한 개체는 정말 지금까지 정확히 '진짜'파일처럼 행동하지 않습니다 - 나는 전체 내용을 얻을, 또는 내가 할 수있는 한 번에 한 줄을 읽고,하지만 난이 패턴을 적용하는 방법을 작동하지 않을 수 있습니다 그냥 디스크에있는 파일과 같은 memoryfile을 처리하는 방법이 있나요CSV 리더가 메모리 파일을 읽는 방법? (- StringIO를 사용하여 수행) -
import csv
with open(#MYMEMORYFILE_HERE#, 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
를, 그래서 더 좋은 숙어를 사용할 수 있습니다 위?
Python 2.7.4 (default, Apr 19 2013, 18:28:01)
편집 : 이것에 대한 답변을 주셔서 감사합니다 - 다음 내가 나를 혼란 있었는지 좁혀 생각 ...하지만 난 여전히 여기에 문제가있는가, 아무것도 출력하지 않습니다? 나는 홍조를 의심합니까?
from csv import reader, writer
import StringIO
memfile=StringIO.StringIO()
spamwriter = writer(memfile)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
spamreader=reader(memfile)
for row in spamreader:
print ', '.join(row)
memfile.close()
편집 # 2 :하지만 내 생각은 잘못된 트리 짖는 해요 : 나는이의 온 디스크 버전 중 하나가 작동 가져올 수 없습니다를 ('IO 오류 : 읽기 위해 파일을 열 수 없습니다'-시 - 사용 splitlines을 대답에 따라, StringIO (그것을위한 진짜 필요) 포기 : 나는 편집 # 3) ... 이미 열려있는 파일에 읽기를 호출합니다.
는 여기 코드와 덧글을 남길 수 있습니다 - 경우에 유용합니다. (비록 막 다른 골목이라도).
spamreader = csv.reader(MYMEMORYFILE_HERE, delimiter=' ', quotechar='|')
모든 것을 csv.reader()
필요가있는 반복 가능한 객체 인 다음 StringIO
개체를 열 필요가 없습니다
년 후, 난 당신이 질문을 업데이트 참조; 다시 찾기를 잊어 버렸기 때문에 업데이트가 실패합니다 *. –