Pythonで簡易エディタを作る

今回はpythonでエディタをつくってみましょう。


まず、エディタを作るには、とりあえず入力された行を保存する必要があります。
ここでは、リストを使って行を保存します。



raws = []
while True:
cont = raw_input(">> ")
raws.append(cont)
このようにすることで、入力された行をリストの中に保存することができます。
これをファイルに保存するためには、

Contents = '\n'.join(cont)
このようにします。そうすれば、各行に改行が追加されます。
あとは、これをファイルオブジェクトにwriteすれば完成です。


僕が書いたデモ版を載せておきます。

#!/usr/bin/python 
#coding:utf-8

import sys,os

contents = []
filename = sys.argv[1]
i = 1
while True:
	edit = raw_input("%s > " % i)
	if edit == "exit":
		if os.access(filename,os.F_OK):
			print "'%s' is Already exist." % filename
			break
		else: 
			f = open(filename,"w")
			f.write('\n'.join(contents))
			f.close()
			print "Maked."
			break
	else:
		contents.append(edit)
	i += 1

行が分かりやすいように行番号を指定しているのと、exitと打たれたらファイルに保存する、ということをしています。
これを応用すれば、一時的に何かのものにコメントを要求して保存することもできますね。
これで簡易エディタの完成です。
コマンドを増やせば、行の削除などを実装できると思います。
行を削除するだけならば、リストの-1の要素をpopかremoveするだけでできますね。
以上です!