ここは個人的な備忘録です。テキトーかつ適当が目標。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
python で uniq コマンドみたいなものを書いた.いきさつは以下のとおり:


uniq コマンドにバカでかい CSV ファイルを食わせたら,

セグメンテーション違反です

とメゲてしまった.頑張れよ,uniq.cat も sort も awk も大丈夫だったのに...
まぁ、1行がメガバイト単位なCSVを食わせるのが悪いのかもしれんね。

環境は

$ uname -a
Linux tekitobibouroku.jp 2.6.18-164.ydl.3 #1 SMP Mon May 10 13:46:45 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

uniq のソースをチラ見したが、バッファを固定値で取っているモヨン。修正する根性がないので,代替手段を探しに出かけた.


すると,python で uniq コマンド的なものを作られた方の記事を発見した.
Pythonでuniqコマンドのように重複行を削除する
そうかこの手の処理も python でいけるやんか.感謝!


さて,こちらの python のバージョンは

$ python
Python 2.4.3 (#1, Sep 3 2009, 15:37:37)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-46)] on linux2
Type "help", "copyright", "credits" or "license" for more information.




自分の状況では CSV ファイル,すなわち「各行内にカンマが入っている」データを処理したい.カンマのせいか,set で重複を弾こうとすると不具合が出る.
あんまり綺麗じゃないけど次のようになった:

#!/usr/bin/python
import sys
data = []
last = ""
for line in sys.stdin:
  if line != last:
    data.append(line)
    last = line
for a in data:
  print a,

その場で標準出力に投げればメモリも食わなくて安心的:

#!/usr/bin/python
import sys
lastline = ""
for line in sys.stdin:
  if line != lastline:
    print line,
    lastline = line

綺麗かどうかは分からんが,短くはなった.これを uniq.py とでも名づけて保存し,chmod u+x ./uniq.py とかすれば実行できるようになる.
スピードが出るのか心配だったが,自分の用途に関しては特に問題はなかった.


案外フィルタも書きやすいのかも試練とオモタ.Python いいな.
スポンサーサイト
後輩氏に LaTeX でのページ番号制御についてたずねられた.可能なことは
  • 文書全体で,ページ番号や見出しを等を[表示非表示
  • 特定ページで,ページ番号や見出し等を[表示非表示
  • ページ番号の書体は,「1,2,3,4」 「i,ii,iii,iv」 「I,II,III,IV」 「a,b,c,d」「 A,B,C,D」
といったこと.


文書全体に反映させたいときはプリアンブルに \pagestyle{},そのページだけならその場に \thispagestyle{} を記述すればOK.

ページ番号制御の組み合わせ
文書全体で
(プリアンブルに下記を記述)
そのページだけ
(そのページに下記を記述)
番号表示しない\pagestyle{empty}\thispagestyle{empty}
フッタに番号\pagestyle{plain}\thispagestyle{plain}
ヘッダに番号と見出し\pagestyle{headings}\thispagestyle{headings}
ヘッダに番号と
ユーザ定義文字列
(注
\pagestyle{myheadings}\thispagestyle{myheadings}

となる.
(注 ところで,myheadings の時は,

\markright{
odd-head}
\markboth{
even-head}{odd-head}

ユーザ定義文字列指定できる.奇数ページと偶数ページで別個の文字列を表示することもできる.ただし,偶数・奇数ページを区別しないスタイルファイルの時は,奇数ページのものが出る.



ページ番号の書体を変えるには,プリアンブルに  \pagenumbering{ 書体 } を記述.書体は,
  • 書体 = arabic フツーの数字 1 2 3
  • 書体 = roman ローマ数字 i ii iii
  • 書体 = Roman  ローマ数字 I II III
  • 書体 = alpha  アルファベット a b c
  • 書体 = Alpha アルファベットA B C
から選べる.



[LaTeXでページ番号 表示/非表示]の続きを読む
こんなの見つけた.








懐かしくて,つい最後まで見た.
「友達に気づかれないように,ランドセルの鍵を開ける」にはワロタ.
牛乳瓶のフタ集めてメンコしてたな.未使用のフタ,通称「サラピン」は強かった.

しょーもないこと,色々やってた気がする.

なんか色々思い出してきた.
子供時代に流行っていた,言葉遊び的なもの:
  • 「何時何分何秒?」という問いに対して「オヤジデンプン画鋲」「オヤジプンプン怒り病」とテンプレ回答があった.「鼻血」とか「花粉」とかバリエーションがあるらしい.「地球が何回回ったとき」のパターンは身の回りでは聞かれず.
  • 「何座?」「餃子!」.なんで小学生はこういうのが好きなんだろう.
  • メンキ」は全国的には少数派っぽい.対メンキバリアとして,「グーバリア」があった気がするが,もっと少数派らしい.グーバリアを維持するのが面倒で,しまいには「グーバリア,天の神様に預けた!」という技を誰かが発明してた.今から考えると,もう無茶苦茶.メンキメンキ言っていたのは,保育園から小学校低学年くらいかな.
  • みっちゃんみちみち…」のわらべうた.保育園で流行した気がする.ググると「紙がないから手で拭いて」だが、記憶では「紙がないので手で拭いて」だた.どっちでもいいか.
  • おまえのかーちゃんで◯そ、車にひかれてぺっちゃんこ、ぺっちゃんこは煎餅、煎餅はまるい、まるいはボール、ボールははねる、はねるはカエル、カエルは緑、緑はキュウリ、キュウリは長い、長いは煙突、煙突は黒い、黒いは悪魔、悪魔は怖い、怖いはおばけ、おばけは消える、….これもバリエーションが多いらしい.主に保育園時代か.


記憶に残っている絵本とか




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。