私は4つの異なる列を持つ巨大なファイルを持っています。列の1つに 'AB'、 'BC'、 'CA'などのコードがあります。私は各コードごとに別々のファイルを作成したいと思います。 4つのフィールドはすべて 'AB'のコードフィールドを持つfile_ABの例 私はこれに新しいですが、可能であれば、Pythonを使用したいと思います。 with open("C:/Users/Desktop/JesseData/fileread.txt") as f1: with open("C:/Users/Desktop/JesseData/fileout.txt") as f2: for line in f1: if fourth_attribute == 'CA': f2.write(line)
ファイルの内容にコードごとに別々のファイルを書く - python
答えて
私はあなたにこれを行うには、完全なコードを提供するつもりが、ここではスタートだいないよ:
ステップ1:あなたのファイルが巨大である場合
ファイルを読んで、あなたがお勧めしますそれを塊で読むこと。これを行うには、各チャンクで読んだ行の数を追跡し、そのイテレータが限界に達すると、そのデータを別のファイルにダンプします。次のようなものがあります。
with open("raw_data.txt", 'r') as f:
i = 0
data = []
for line if f:
data.append(line) #do some formatting here
i += 1
if i >= THRESHOLD:
data_dump(data)
data = []
i = 0
この方法では、ファイル全体を一度に消去することはできません。
ステップ2:あなたのdata_dump
機能でグループデータ
、あなたはグループにデータをお勧めします。これは、itertools.groupby()
で最も簡単に実行できます。この関数は、反復可能キーとキーを受け取り、グループに分割された反復子を返します。あなたのデータがフォーマットされている場合、各行は、その行の値のリストである、そして、あなたのキーが最初のエントリであり、あなたのグループ分けは次のようになります。
groups = itertools.groupby(data, key = lambda x: x[0])
注groupby()
あなたがソートされたデータセットを期待し、そうすることを同じキー機能でデータをソートする必要があります。以下はgroupby
>>> lst = [[1, 2,3],[1,4,5],[2,45,65]]
>>> import itertools
>>> groups = itertools.groupby(lst, key = lambda x: x[0])
>>>
>>> for g in groups:
... print g[0], list(g[1])
...
1 [[1, 2, 3], [1, 4, 5]]
2 [[2, 45, 65]]
ステップ3の簡単な例である:データ
を書くあなたのデータがグループ化されたら、することができますだけのグループをループし、対応する出力ファイルにデータを追加。あなたのループ
このような詳細な説明をいただきありがとうございます。私のファイルはリストではなく、 ";"で区切られた属性を含んでいます。ですから、デリミタを使ってグループ化する方法はありますか? – yatri
- 1. ファイルの内容を別のファイルにコピー
- 2. モデルごとに別々のファイルを使用したSequelizejsのNodej
- 3. フィルタ結果ごとに別々のExcelファイルを作成する
- 4. Djangoの各アプリケーションの静的ファイルごとに別々のフォルダを持つ方法
- 5. Pythonソートtxtファイルの内容
- 6. ファイルにPHPコードを書く
- 7. jListにファイル内容を書き込む
- 8. あるファイルの内容を別のファイルに追加する
- 9. ライブラリのインスタンスごとに別々のロガー
- 10. C++で別のファイルにクラスを書く
- 11. HTMLページごとに別々のjavascriptファイルを使用していますか?
- 12. dictのリストの内容をPythonのファイルに書き込む方法
- 13. グループごとに異なるファイルにグループを書く
- 14. 各クラスを別々のファイルに格納するpython
- 15. ファイルに書き込むときに上書きされる既存のファイルの内容を避ける
- 16. 各シートを別々のCSVファイルにエクスポート
- 17. 角モダルコントローラを別々のファイルに移動
- 18. 1つのファイルの内容を別のファイルに繰り返しコピーする
- 19. テキストファイルの内容をコピーして別のファイルにコピー
- 20. DirectSound CaptureBufferの内容をC#のWAVファイルに書き込む
- 21. リストの内容を1つのファイルに書き込むR
- 22. シェル:ファイルを読み込んでその内容を別のファイルにエコーする
- 23. ファイルを開き、その内容を別のファイルにコピーします。
- 24. PythonのメモリにRARファイルの内容を読み込む
- 25. Python - txtファイルにシンボリック式(sympy)を書く
- 26. EditTextの内容に基づいてファイルに書き込む
- 27. リストごとに別々のカウンターを一度に印刷する
- 28. 別のpyファイルのコード用のPythonインポートモジュール
- 29. ファイル内の内容をファイルの先頭にテキスト
- 30. C++ファイルの内容をプログラムに書き込む
のすべてを通してあなたのループは、なぜあなたはそれを試し、ポストを与えていないときは、簡単に正しいファイルに書き込むことができますこの方法では
:私は、ファイルハンドルの辞書を保つことをお勧めしたいですいくつかのコード? – Francesco