言語処理100本ノックより。
(1)
print len([line for line in open("./address.txt", "r")])
(2)
import re print re.compile("\t").sub(" " ,file("./address.txt", "r").read())
(3)
col1, col2 = zip(*[line.split("\t") for line in open("./address.txt", "r")]) open("col1.txt", "w").write("\n".join(col1)) open("col2.txt", "w").write("".join(col2))
(4)
ss = [] for line in zip(open("./col1.txt", "r").read().split("\n"), open("./col2.txt", "r").read().split("\n")): ss.append("\t".join(line)) open("4.txt", "w").write("\n".join(ss))
なんかヘン。
(5)
# -*- coding: utf-8 -*- import sys N = int(sys.argv[1]) with open("./address.txt") as myfile: head = [myfile.next() for x in range(N)] print "".join(head)
(6)
悪いやりかた。
# -*- coding: utf-8 -*- import sys N = int(sys.argv[1]) print "\n".join(file("./address.txt", "r").read().split("\n")[-N:])
(7)
# -*- coding: utf-8 -*- # (3)で作ったcol1.txtを利用 print len(set(open("./col1.txt", "r").read().split("\n")))
(8)
これ難しくないですかっ><
参考:Unicode文字列をソートする方法
# -*- coding: utf-8 -*- import locale locale.setlocale(locale.LC_ALL, "") print "\n".join(open("./col2.txt", "r").read().decode("utf-8").split("\n").sort(cmp=locale.strcoll))
が、自分の環境だとNoneが返ってくる。ぐぬぬ。
(9)
8がよく分からないので保留。まず2コラム目でソートし、2コラム目の同じ要素でgroupingしてそれぞれのグループを1コラム目の要素でソートするという方法が思いついたのだけどこれって効率が悪いのかしら。