例如,如果文件有
xxx|12
yyy|13
zzz|14
我需要输出
1 xxx|12
2 yyy|13
3 zzz|14
我怎样才能做到这一点?
答案 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])