Python 深究readline()
文件123内容
123 456 789
操作:
f = open('123','r') line = f.readline() print line[0] #1 print line[-1] #\n 回车 print line[1,-1] #23,注意从1 到-1 但是不包括line[-1],而包括开始位置line[1]
注意:
f.readline()完成后最后一个字符是 ‘\n’,此时光标已经定位到了下一行的第0个位置
但是读第三行时 print line[-1]是9而不是'\n',因为此时最后一行不存在换行符
那么这样就好解决这个问题了:想在第一行后面加'hello',这样编程就错了:
f = open('123','r+') f.readline() f.seek(-1,1) #定位到\n前 f.write('hello') f.close()
结果:
123
hello
789
没有在第一行写反到第二行了,这是因为原来的格局已定了,要想实现可以这样:
f = open('123','r+') g = open('1234','w') line = f.readline() line = line[:-1] + ' hello\n' g.write() g.write(f.readline()) g.write(f.readline()) f.close() g.close()
其中用到了几个技巧:
1. 去除最后的回车键‘\n’
line = f.readline()
line = line[:-1]
2. 字符串相加:
line += ' hello'