falldog 发表于 2015-4-25 10:15:54

Python 深究readline()

  文件123内容



123
456
789
  操作:



f = open('123','r')
line = f.readline()
print line          #1
print line[-1]         #\n 回车
print line       #23,注意从1 到-1 但是不包括line[-1],而包括开始位置line
  注意:
  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'
  
  
页: [1]
查看完整版本: Python 深究readline()