#!/usr/bin/env python
import sys
try:
ifile = open(sys.argv[1], 'r')
ofile = open(sys.argv[2], 'w+')
except:
print "Usage is <script> inFile outFile"
else:
for i, line in enumerate(ifile, start=1):
items = [str(i)] + line.split()[1:]
ofile.write(' '.join(items) + '\n')
ifile.close()
ofile.close()
Есть несколько моментов, которые я хотел бы обсудить с моим ответом. Первый - это блок try, где я проверяю, могу ли я открыть файлы. Если имена файлов не введены или файл не открывается, вы получите сообщение об использовании. Конечно, вы можете разбить это на части: проверить текст и вернуть, соответственно, возвращаемое использование, и попытаться открыть файлы, и, соответственно, возврат файла не удался. Или вы можете проверить наличие особых исключений и вернуть разные сообщения.
Далее, перечисление является удобным способом, позволяющим интерпретатору отслеживать индекс. В самом цикле я объединяю индекс перечисления и «фрагмент» строки чтения (все, кроме первого элемента). Затем я присоединяю их к пробелу и пишу их с новой строки.
Это ясно и коротко.