ログイン
編集不可のページディスカッション情報添付ファイル
"alstamber/TwitterDMRearrange"の差分

MMA
6と7のリビジョン間の差分
2012-04-15 22:50:21時点のリビジョン6
サイズ: 1746
編集者: alstamber
コメント:
2012-04-15 23:27:22時点のリビジョン7
サイズ: 2532
編集者: alstamber
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 38: 行 38:

=== DMの固有IDを消す ===
 * このCSVファイルにはDMにTwitter側が割り振った固有のIDも書き込まれている。
  * 正直いらないのでスクリプトでこれも消す。
 * 先のスクリプトのelse節を次のように付けかえる。
{{{#!highlight python
        dst = re.sub('^\"[0-9]+\",|^\"ID\",', '', line)
        output.write(dst)
}}}
 * 正規表現を使ってIDに関する部分を消している。IDは行の先頭部分に"数字"という形式で書かれているのでカンマもろともNULLで置換して消してしまう。
 * ついでに表の項目名に当たる部分も消してしまう。

 * 以上の作業で送信者、受信者、本文、送信時刻という素直な形式のCSVになった。

TwitterのDMを整理したいと思った

はじめに

  • DM Mailerというサービスを使うと、本来なら一定数を超えると消えていくTwitterのDMを貯蔵しておくことができる。
    • 貯蔵して置けるのはいいんだけど、このサービスのサイトでDMを見ようとすると閲覧性があんま良くない。
    • 何とかしたいなあと思った。
  • DM Mailerは貯蔵してきたDMをcsvで出力できる。
    • このCSVを加工すればそれなりに見れるものになるのでは……?

リムーブ通知を消す

  • リムーブ通知サービスに登録しているため、DMの中にはリムーブ通知およびブロック通知がかなり多数含まれている。
    • これを手で消すのは面倒なので、Pythonでスクリプトを書くことにした。
    • こういうことはsed&awkのほうが得意なんだろうけどね……w

   1 #!/usr/bin/python
   2 # -*- coding: utf-8 -*-
   3 
   4 datafile='input.csv'
   5 outputfile='output.csv'
   6 
   7 input=open(datafile, 'r')
   8 output=open(outputfile, 'w')
   9 
  10 lines = input.readlines()
  11 input.close()
  12 
  13 for line in lines:
  14     if line.find("リムーブされました") != -1 or line.find("ブロックされました") != -1:
  15         continue
  16     else:
  17         output.write(line)
  18 output.close()
  • 一行ずつ調べて、リムーブされましたorブロックされましたという文字列を発見したらその行は書き出さないってだけのスクリプト
    • 芸もなんもないが、元のCSVが高々1500行ぐらいだったのでこれで十分だろうと判断

DMの固有IDを消す

  • このCSVファイルにはDMにTwitter側が割り振った固有のIDも書き込まれている。
    • 正直いらないのでスクリプトでこれも消す。
  • 先のスクリプトのelse節を次のように付けかえる。

   1         dst = re.sub('^\"[0-9]+\",|^\"ID\",', '', line)
   2         output.write(dst)
  • 正規表現を使ってIDに関する部分を消している。IDは行の先頭部分に"数字"という形式で書かれているのでカンマもろともNULLで置換して消してしまう。
  • ついでに表の項目名に当たる部分も消してしまう。
  • 以上の作業で送信者、受信者、本文、送信時刻という素直な形式のCSVになった。

alstamber/TwitterDMRearrange (最終更新日時 2013-05-20 18:20:17 更新者 alstamber)