1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

言語処理100本ノック10~14

Last updated at Posted at 2015-08-21

言語処理100本ノック2章unixコマンドに入りました。
全然8月中に終わらせることができないような気がします...
いろいろアドバイスください!!
言語処理100本ノック2015のサイトにあるhightemp.txtを入力ファイルとします。
#10.行数のカウント

nlp10.py
#! usr/bin/env python
#coding:utf-8
with open('hightemp.txt','r') as f :
    num_line = len([None for line in f])
    print num_line

実行結果

24

unixコマンド
wc -l hightemp.txt

実行結果(unixコマンド)

24 hightemp.txt

#11.タブをスペースに置換

nlp11.py
#! usr/bin/env python
#coding:utf-8
with open('hightemp.txt','r') as f:
    for line in f:
        rep_line = ' '.join(line.split())
        print(rep_line)

実行結果

高知県 江川崎 41 2013-08-12
埼玉県 熊谷 40.9 2007-08-16
岐阜県 多治見 40.9 2007-08-16
山形県 山形 40.8 1933-07-25
山梨県 甲府 40.7 2013-08-10
和歌山県 かつらぎ 40.6 1994-08-08
静岡県 天竜 40.6 1994-08-04
山梨県 勝沼 40.5 2013-08-10
埼玉県 越谷 40.4 2007-08-16
群馬県 館林 40.3 2007-08-16
群馬県 上里見 40.3 1998-07-04
愛知県 愛西 40.3 1994-08-05
千葉県 牛久 40.2 2004-07-20
静岡県 佐久間 40.2 2001-07-24
愛媛県 宇和島 40.2 1927-07-22
山形県 酒田 40.1 1978-08-03
岐阜県 美濃 40 2007-08-16
群馬県 前橋 40 2001-07-24
千葉県 茂原 39.9 2013-08-11
埼玉県 鳩山 39.9 1997-07-05
大阪府 豊中 39.9 1994-08-08
山梨県 大月 39.9 1990-07-19
山形県 鶴岡 39.9 1978-08-03
愛知県 名古屋 39.9 1942-08-02

unixコマンド
expand -t 1 hightemp.txt

#12.1列目をcol1.txtに,2列目をcol2.txtに保存

nlp12.py
#! usr/bin/env python
#codeing:utf-8
with open('hightemp.txt','r') as f:    
    wf1 = open('col1.txt','w')
    wf2 = open('col2.txt','w')
    for line in f:
        wf1.write(line.split()[0]+'\n')
        wf2.write(line.split()[1]+'\n')
    wf1.close()
    wf2.close()

実行結果

col1.txt
高知県
埼玉県
岐阜県
山形県
山梨県
和歌山県
静岡県
山梨県
埼玉県
群馬県
群馬県
愛知県
千葉県
静岡県
愛媛県
山形県
岐阜県
群馬県
千葉県
埼玉県
大阪府
山梨県
山形県
愛知県
col2.txt
江川崎
熊谷
多治見
山形
甲府
かつらぎ
天竜
勝沼
越谷
館林
上里見
愛西
牛久
佐久間
宇和島
酒田
美濃
前橋
茂原
鳩山
豊中
大月
鶴岡
名古屋

unixコマンド
cut -f1 hightemp.txt > col1.txt
cut -f2 hightemp.txt > col2.txt

#13. col1.txtとcol2.txtをマージ

nlp13.py
#! usr/bin/env python
#coding:utf-8

c1 = open('col1.txt','r')
c2 = open('col2.txt','r')

with open('merge.txt','w') as wf:
    for line1,line2 in zip(c1,c2):

        wf.write(line1.strip()+' '+line2.strip()+'\n')
        
c1.close()
c2.close()

実行結果

高知県 江川崎
埼玉県 熊谷
岐阜県 多治見
山形県 山形
山梨県 甲府
和歌山県 かつらぎ
静岡県 天竜
山梨県 勝沼
埼玉県 越谷
群馬県 館林
群馬県 上里見
愛知県 愛西
千葉県 牛久
静岡県 佐久間
愛媛県 宇和島
山形県 酒田
岐阜県 美濃
群馬県 前橋
千葉県 茂原
埼玉県 鳩山
大阪府 豊中
山梨県 大月
山形県 鶴岡
愛知県 名古屋

unixコマンド
paste col1.txt col2.txt

#14.先頭からN行を出力

nlp14.py
#! usr/bin/env python
#coding:UTF-8
import sys
argvs = sys.argv[1]

#コマンドライン引数が正しく入力されているか確認する部分を作成
with open('hightemp.txt','r') as file:
    for i in xrange(int(argvs)):
        line = file.readline()
        print line,

実行結果(コマンドライン引数を3とした場合)

高知県	江川崎	41	2013-08-12
埼玉県	熊谷	40.9	2007-08-16
岐阜県	多治見	40.9	2007-08-16

unixコマンド
head -3 hightemp.txt

コマンドライン引数が入力されていない場合のエラー処理をしないといけないと思いつつ放置しました。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?