专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Perl/Python

python对文件进行操作,插入多行!多谢各位

发布时间:2011-06-29 20:10:11 文章来源:www.iduyao.cn 采编人员:星星草
python对文件进行操作,插入多行!在线等!谢谢各位!
如题,我用python操作文件,从文件中固定的某一行开始插入多行数据时候,总是倒着插入啊,例如我想插入:
1 2 3
4 5 6
7 8 9
我想插入上面三行数据的时候,用下面的代码后结果插入成了下面的形式:
7 8 9
4 5 6
1 2 3
求助啊!在线等!另外问一下各位高手,如何删除文件中固定某一行的特定字符啊,例如我想删除"1 2 3 "这样行中的3.
谢谢各位了!
我的代码如下,请大家帮我看看!
Python code

# -*- coding: cp936 -*-
dat0='   '
dat_n='\n'
year='1987'
dat1='744'
dat2='36'
dat3='xxx'
k=16
i=16
j=1

f = open('D:/Fortran/run_data_mode', 'r')
data = f.readlines()
f.close()
#data[4] = data[4].replace('year', '1987')
data[k:1] = [dat0,dat1,dat0,dat2,dat_n]


###################下面部分为我要做的,即从第i=15行开始插入多行数据,但是为啥是倒着插入的?
###################不能按照我的本意插入啊!#########################################
while(1):
    data[i:1]=[dat0,str((j+0)*int(dat2)),dat0,str((j+1)*int(dat2)),dat0,str((j+2)*int(dat2)),
               dat0,str((j+3)*int(dat2)),dat0,str((j+4)*int(dat2)),dat0,str((j+5)*int(dat2)),
               dat0,str((j+6)*int(dat2)),dat0,str((j+7)*int(dat2)),dat0,str((j+8)*int(dat2)),
               dat0,str((j+9)*int(dat2)),dat_n]
    i=i+1#########关键这个地方出问题了好像。
    j=j+10
    if int(dat1)*int(dat2)<j*int(dat2):
        break
###################上面部分为我要做的,即从第i=15行开始插入多行数据,但是为啥是倒着插入的?


f = open('D:/Fortran/run_data_mode', 'w')
f.writelines(data)
f.close()




------解决方案--------------------
既然是字符串,先构造,再写入
例如
Python code

data = '123'
data += '\n456'
data += '\n789'
f = open('data.txt','w')
f.write(data)
f.close()
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: