文件是线性表。如果想在文件中间插入内容,必须将插入点之后的字符向后移动。我推荐的作法是:将文件读入内存,在指定位置添加一行,然后再保存文件。
1
2
3
4
5
6
7
8
9
10
11
|
#! /usr/bin/python fp = file ( 'data.txt' ) s = fp.read() fp.close() a = s.split( '\n' ) a.insert( 1 , 'a new line' ) # 在第二行插入 s = '\n' .join(a) fp = file ( 'data.txt' , 'w' ) fp.write(s) fp.close() |
追问:
非常感谢你,感觉你的办法很好,那如果我要读取一个文件的第二行内容如何处理呢?我是要在一个文件中读取第二行的内容,然后将这行内容插入在另一个文件的第二行中的,麻烦你再指导下吧,谢谢哈!!!!
追答:
这样做:
1
2
3
|
fp = file ( 'data.txt' ) for i in range ( 2 ): # 循环两次,每次读取一行 line = fp.readline() # 第二次循环后,这就是第二行内容了 |
我之前写的代码是基本的方法,但效率不高,在此贴一个效率最高的方法:
1
2
3
4
5
6
7
8
9
10
11
|
fp = file ( 'data.txt' ) lines = [] for line in fp: # 内置的迭代器, 效率很高 lines.append(line) fp.close() lines.insert( 1 , 'a new line' ) # 在第二行插入 s = '\n' .join(lines) fp = file ( 'data.txt' , 'w' ) fp.write(s) fp.close() |