急求大神指教:怎样用python在指定文件中的指定行插入一句话呢?

我想用python在一个指定的文件中第2行插入一句话,想不出办法?怎样操作呢?很急啊,求大神赶紧指教,最好有详细源码,非常感谢啊!!!!!
在第二行插入数据后,从第三行以后的内容要逐次向后移动一行,不能把第三行的内容覆盖了呀,谢谢!!!

1、打开pycharm开发工具,在python项目中,定义列表变量b1并赋值。

2、使用列表中的方法,向列表b1的第二个位置,添加元素yhd,并打印结果。

3、保存代码并运行python文件,结果控制台出现了报错。

4、检查代码发现,本来是想用insert,结果写成了index;修改代码方法,然后保存代码。

5、再次运行python文件,结果发现yhd添加到第二个位置。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-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()

追问

非常感谢你,感觉你的办法很好,那如果我要读取一个文件的第二行内容如何处理呢?我是要在一个文件中读取第二行的内容,然后将这行内容插入在另一个文件的第二行中的,麻烦你再指导下吧,谢谢哈!!!!

追答

这样做:

fp = file('data.txt')
for i in range(2): # 循环两次,每次读取一行
    line = fp.readline() # 第二次循环后,这就是第二行内容了


我之前写的代码是基本的方法,但效率不高,在此贴一个效率最高的方法:

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()

 

回头给我一个采纳~

本回答被提问者采纳
第2个回答  2013-06-21
with open('a.txt') as f:
lines = f.readlines()
lines[1:1] = ['hello\n']
open('a.txt', 'w').writelines(lines)追问

你这个办法果然很好,非常感谢你,我想再问下,我想读取一个文件指定一行的内容的,如何操作呢?我是想把一个文件中指定第2行的内容读出来,然后将其插入到另一个文件中的第2行,麻烦大神您再指导下吧!非常感谢你!!!

追答

with open('b.txt') as f:
print f.readlines()[1]

本回答被网友采纳
相似回答