忍者ブログ
  ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
Admin*Write*Comment
[714]  [713]  [712]  [711]  [710]  [709]  [708]  [707]  [706

144万行あるCSVの中から4列目と7列目のデータを抽出したい。
ごくごく簡単なお仕事ね。
そう思っていつものようにさくっとコーディング。

t = r"C:\Temp\all.txt"
import csv

results = []
c = {}
with open(t) as f:
    reader = csv.reader(f, delimiter="\t")
    for i, row in enumerate(reader):
        if not row[6]:
            continue
        res = [row[3], row[6]]
        results.append(res)

with open(r"E:\output.csv", "wb") as f:
    writer = csv.writer(f, delimiter="\t")
    writer.writerows(results)

するとどうでしょう?
なぜか結果には41,128行しかデータがない。。
なぜ?と多少不安になりながらもデバッグしてみると、本当にループが41,128回で止まっているみたい。
あれこれ試行錯誤するものの解決できず…
かくなる上はPython3.4に書き下ろす…

t = r"C:\Temp\all.txt"
import csv

results = []
c = {}
with open(t, encoding='utf-8') as f:
    reader = csv.reader(f, delimiter="\t")
    for i, row in enumerate(reader):
        if not row[6]:
            continue
        res = [row[3], row[6]]
        results.append(res)

with open(r"E:\output.csv", "w", encoding='cp932') as f:
    writer = csv.writer(f, delimiter="\t")
    writer.writerows(results)

するとどうでしょう?
問題なく動くじゃない><M
2系のバグでしょうか?
うーん、3系デフォルトで使おうかなー
なんて思った出来事でした。

検索タグ
Python2.7
Python3.4

拍手

PR



COMMENT
Name
Title
Color
Mail
URL
Text
Pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret
ブログ内検索
カレンダー
07 2017/08 09
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
カウンター
最新コメント
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
ブログパーツ
アバター
Copyright © アナログを愛するデジタル生活館 All Rights Reserved.
photo by Kun material by Atelier Black/White Template by Kaie
忍者ブログ [PR]