如何用Python将字符插入文本文件?
这是我拥有的文本文件。
# This is an auto-generated Django model module created by ogrinspect.
from django.contrib.gis.db import models
class Parking(models.Model):
name = models.CharField(max_length=80)
descriptio = models.CharField(max_length=80)
geom = models.PointField(srid=4326)
objects = models.GeoManager()
# Auto-generated `LayerMapping` dictionary for Parking model
parking_mapping = {
'name' : 'Name',
'descriptio' : 'Descriptio',
'geom' : 'POINT25D',
}
我想在 class Parking(models.Model):
之后插入 layer_id= models.ForeignKey('sdr_layer.id')
,请问用Python脚本可以做到吗?怎么做呢?
3 个回答
1
你可以先把所有内容读到一个列表里,然后把你的文本插入到需要的位置(这里你可以用正则表达式或者'find'/'index'等方法)。最后,只需简单地把文件重新写入即可。
1
你可以用两种基本的方法:
把整个文件的内容一次性读入内存,变成一个字符串,然后用正则表达式或者直接用
str.replace()
来修改这个字符串,最后再把修改后的字符串写回文件,替换掉原来的内容。逐行读取文件,把每一行复制到一个新文件,直到你到达想要添加新行的位置。这个时候,把新行写入新文件。然后继续把剩下的行复制到新文件里。完成后,把新文件重命名,这样它就可以替换掉原来的文件。
第二种方法虽然更复杂,但适用于那些太大而无法一次性放进内存的文件。
1
#!/usr/bin/python
filename='thefile.txt'
search="class Parking(models.Model):"
add="\n layer_id= models.ForeignKey('sdr_layer.id')"
content=open(filename,'r').read()
content=content.replace(search,search+add)
fp=open(filename,'w')
fp.write(content)
fp.close()
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。