写教材的时候希望给源代码加上行号,手工太麻烦。自己曾经用VB.NET写过一个可视化的程序批量完成这个功能。辗辗转转这个程序竞找不到了,失望之余,也不想再费太多的功夫去写了。最近又写教材,忽然想看看动态语言到底在处理文件和字符串上是否如传说中那样简单,于是写了两个小程序,一个Ruby的,一个Python的,二者其实差不太多。
Ruby:
Python:
两个程序都是通过命令行参数引入待处理的文件,将处理后加上了行号的行写入到另一个文件中(原文件名+“.txt”)。
Ruby:
filename=ARGV[0]
rf=File.new(filename,"r")
wf=File.new("#{filename}.txt","w")
i=0
for line in rf.readlines
i=i+1
snum=i.to_s+": "
line=snum+line
wf.puts(line)
end
rf.close
wf.close
print "Finished!"
rf=File.new(filename,"r")
wf=File.new("#{filename}.txt","w")
i=0
for line in rf.readlines
i=i+1
snum=i.to_s+": "
line=snum+line
wf.puts(line)
end
rf.close
wf.close
print "Finished!"
Python:
import sys
filename=sys.argv[1]
rf=open(filename,"r")
wf=open(filename+".txt","w")
i=0
for line in rf.readlines():
i=i+1
snum="%s: " %i
line=snum+line
wf.write(line)
rf.close()
wf.close()
print "Finished!"
filename=sys.argv[1]
rf=open(filename,"r")
wf=open(filename+".txt","w")
i=0
for line in rf.readlines():
i=i+1
snum="%s: " %i
line=snum+line
wf.write(line)
rf.close()
wf.close()
print "Finished!"
两个程序都是通过命令行参数引入待处理的文件,将处理后加上了行号的行写入到另一个文件中(原文件名+“.txt”)。