忍者ブログ
Admin / Write / Res
ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
ブログ内検索
カレンダー
10 2024/11 12
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
カウンター
アクセスカウンター
最新コメント
[11/22 รูปพวงหรีดแสดงความเสียใจ]
[11/22 ดอกไม้ งานศพ]
[11/22 ช่อดอกไม้ตามสั่ง]
[11/22 ร้านดอกไม้บรรยากาศอบอุ่น]
[11/21 Robertret]
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
[716]  [715]  [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
この記事にコメントする
Name
Title
Color
Mail
URL
Comment
Password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (管理人にのみ表示)
Copyright ©  アナログを愛するデジタル生活館 All Rights Reserved.
* material by Pearl Box   * Template by tsukika

忍者ブログ [PR]