我知道sed或awk可以更優雅地處理這類問題。但是我採用了python的方式,所以問題是我想將數據文件的第一列從1重新編號到文件中的#行。通過readlines讀取文件是個好主意嗎?對於小文件也許,但大文件不是我想的。所以這就是我第一次嘗試的想法,任何意見都是值得讚賞的。更改第一列中的數字
#!/usr/bin/env python
import sys
try:
infilename = sys.argv[1]; outfilename = sys.argv[2];
except:
print "Usage is <script> inFile outFile"
ifile = open(infilename,'r')
ofile = open(outfilename, 'w')
lines = ifile.readlines();
i=1
for line in lines:
list = line.split();
list[0] = i
i += 1
for val in list:
ofile.write("%d " % int(val))
ofile.write('\n')
del list
ifile.close()
ofile.close()
不要使用分號來結束語句,這在Python中不是必需的,通常被認爲是不好的做法(因爲語句更優雅地由線返回完成)。 – 2011-01-08 23:31:49
@Sylvain,習慣... – 2011-01-08 23:33:49
@tokland,:對,我應該改進:) – 2011-01-08 23:38:12