急求大神指教:怎样用python在指定文件中的指定行插入一句话呢?
我想用python在一个指定的文件中第2行插入一句话,想不出办法?怎样操作呢?很急啊,求大神赶紧指教,最好有详细源码,非常感谢啊!!!!!在第二行插入数据后,从第三行以后...
我想用python在一个指定的文件中第2行插入一句话,想不出办法?怎样操作呢?很急啊,求大神赶紧指教,最好有详细源码,非常感谢啊!!!!!
在第二行插入数据后,从第三行以后的内容要逐次向后移动一行,不能把第三行的内容覆盖了呀,谢谢!!! 展开
在第二行插入数据后,从第三行以后的内容要逐次向后移动一行,不能把第三行的内容覆盖了呀,谢谢!!! 展开
展开全部
文件是线性表。如果想在文件中间插入内容,必须将插入点之后的字符向后移动。我推荐的作法是:将文件读入内存,在指定位置添加一行,然后再保存文件。
#! /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()
回头给我一个采纳~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
with open('a.txt') as f:
lines = f.readlines()
lines[1:1] = ['hello\n']
open('a.txt', 'w').writelines(lines)
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]
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询