あなたはテストデータを提供していないので、ランダムな例があなたの問題に十分に変換されることを願っています。要するに、テスト中に一時的なファイルオブジェクトを作成したくない場合(妥当な制約、imo)は、StringIO
を使用します。 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