테스트 데이터를 제공하지 않았으므로 임의의 예제가 문제를 해결할 수 있기를 바랍니다. 간단히 말해, 테스트 중에 임시 파일 객체를 만들고 싶지 않다면 (이는 합리적인 제약입니다. imo) StringIO
을 사용하십시오. mock
모듈에는 중요한 진입 장벽이 있으므로, 사용하기 힘든 mock
능력을 필요로하지 않는다면 사용하면 안됩니다.
from io import StringIO
from csv import reader # this should import your custom parser instead
in_mem_csv = StringIO("""col1,col2,col3
1,3,foo
2,5,bar
-1,7,baz""") # in python 2.7, put a 'u' before the test string
test_reader = reader(in_mem_csv, delimiter=',', quotechar='|')
for line in test_reader:
print(line)
# whatever you need to test to make sure the csv reader works correctly
출력 :
['col1', 'col2', 'col3']
['1', '3', 'foo']
['2', '5', 'bar']
['-1', '7', 'baz']
편집 :
난 그냥 개인적으로 파일을 나타내는 트리플 문자열을 선호하는 서식 대체 문자열은 일반 문자열은 귀하의 경우 더 좋을 수 있습니다. 줄을 끊고 문자열 값을 편리하게 변경하지 않는 방법은이 예제를 참조하십시오.
in_mem_csv = StringIO(
"col1,col2,col3\n"
"1,3,foo\n"
"2,5,bar\n"
"-1,7,baz\n"
)
테스트 파일은 괜찮습니다. – xs0
내 말은, 그게 당신에게 어떤 불편을 줍니까? – xs0
CSV 파일은 '쉼표로 구분 된 값'의 약자로, CSV 입력을 쉼표로 구분 된 값 (예 : "hello, world, welcome")으로 바꿀 수 있습니다. – AidanH