如何为文件生成索引?

时间:2011-03-29 08:10:21

标签: python

例如,如果文件有

xxx|12

yyy|13

zzz|14

我需要输出

1 xxx|12

2 yyy|13

3 zzz|14

我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:3)

import fileinput
f=fileinput.FileInput("file",inplace=1)
for line in f:
     print  f.lineno(), line

还有很多其他方法可以做到这一点。如果您使用的是linux / unix系统

awk '{print NR,$0}' file
cat -n file
sed '=' file
nl file

Ruby(1.9 +)

ruby -ne 'print "#{$.} #{$_}"' file

答案 1 :(得分:0)

使用enumerate()

f = open('input_file')
data = f.read().split()
f.close()

data = ["%d %s" % (idx + 1, x) for idx, x in enumerate(data)]
data = " ".join(data)

f = open('output_file', 'w')
f.write(data)
f.close()

答案 2 :(得分:0)

inputfile = open('filein.txt', 'r')
outputfile = open('fileout.txt', 'w')
count = 1

for line in inputfile:
    outputfile.write(str(count) + " " + line)
    count += 1    

outputfile.close()
inputfile.close()

et voile。

答案 3 :(得分:0)

inputfile = open('filein.txt', 'r')
outputfile = open('fileout.txt', 'w')


for index, line in enumerate(inputfile, 1):
    outputfile.write("%d %s" %(index, line))

outputfile.close()
inputfile.close()

答案 4 :(得分:0)

我注意到你的输入有一些空行,无论如何你去了:

text=open('input.txt','r')
lines=text.readlines()
text.close()

output=open('output.txt','w')

for lineNumber in range(len(lines)):
    if lines[lineNumber] not in ["","\n","\t"]:
        output.write(str(lineNumber)+" "+lines[lineNumber])
    else:
        output.write(lines[lineNumber])