0

タブ区切りのファイルを読み取ろうとしていますが、フィールドには改行文字が含まれている可能性があり、改行を含むフィールドを維持したいと考えています。私の現在の実装では、各 "\n" から新しいフィールドが作成されます。

私はcsvモジュールを試してみましたが、探しているものに成功せずに「\ t」で分割しました。以下は、特定のファイルのサンプル行です。

*Field_1 \t Field_2 \t Field_3 \n 追加テキスト \n 詳細テキスト \t Field_4*

上記のデータから 4 つの要素のリストを生成したいと思います。

*["Field_1", "Field_2", "Field3 \n 追加テキスト \n 追加テキスト", "Field_4"]*

どんな考えや提案も役に立ちます。

4

2 に答える 2

3

このようにタブで分割してみましたか?

data = 'Field_1 \t Field_2 \t Field_3 \n Additional Text \n More text \t Field_4'
print data.split('\t')
于 2013-04-18T01:59:43.727 に答える
1

読み取り元のファイルへのパスに置き換えfileNameます。

inFile = open(fileName, "r")
rawData = inFile.read() # Entire file's contents as one multiline string (if there's a line break)
data = rawData.split("\t")
inFile.close()

withファイル I/O にステートメントを使用するオプション (一般的に推奨) もあります。

with open(fileName, "r") as inFile:
    rawData = inFile.read() # Entire file's contents as one multiline string (if there's a line break)
    data = rawData.split("\t")
# you can omit the inFile.close() statement.

このwithステートメントを使用すると、開いているファイル ストリームは、実行時にエラーが発生した場合に自動的に閉じられますが、ファイル I/O を学んでいる人にとっては、それがどのように機能するかはあまり明確ではありません。

于 2013-04-18T02:26:12.907 に答える