替换txt文件第一行部分内容
txt文件很大,近200M,读取整个文件很慢,我不想读取整个文件
我只想替换第一行,第一行有很多列,分隔符为tab:
原文:1/[2]
替换后:12
[最优解释]
果然容易出错,上面运行后的数据文件被修改错了,第二行少了字符,因为有句代码没考虑好就是buffer=...那句:
再贴代码:
#! /usr/bin/env python
#coding=utf-8
'''
修改文本文件第一行
'''
def main():
datafilename='data1.txt'
fh=open(datafilename, 'r+')
firstline=fh.readline()
#print('fp tell', fh.tell())
#print(firstline)
lenfirstline=len(firstline)
#print(lenfirstline)
buffer=(firstline.replace('1/[2]', '12'))[:-1].ljust(lenfirstline-1)+'\n'
#print(buffer)
#print(len(buffer))
fh.seek(0)
fh.write(buffer)
fh.close()
if __name__=='__main__':
print('>')
main()
print('<')
'''
测试的data1.txt文件内容如下:
aa1/[2]bb1/[2]cc1/[2] dd1/[2]ee
aaaaabbbbbcccccddddd
eeeeefffffggggghhhhhiiiii
jjjjjkkkkklllllmmmmmnnnnn
'''
#! /usr/bin/env python
#coding=utf-8
'''
修改文本文件第一行
'''
def main():
datafilename='data1.txt'
fh=open(datafilename, 'r+')
firstline=fh.readline()
#print('fp tell', fh.tell())
#print(firstline)
lenfirstline=len(firstline)
#print(lenfirstline)
buffer=(firstline.replace('1/[2]', '12'))[:-1].ljust(lenfirstline)+'\n'
#print(buffer)
#print(len(buffer))
fh.seek(0)
fh.write(buffer)
fh.close()
if __name__=='__main__':
print('>')
main()
print('<')
'''
测试的data1.txt文件内容如下:
aa1/[2]bb1/[2]cc1/[2] dd1/[2]ee
aaaaabbbbbcccccddddd
eeeeefffffggggghhhhhiiiii
jjjjjkkkkklllllmmmmmnnnnn
'''