如何使用python将一串字符插入文本文件?

时间:2011-06-07 17:40:28

标签: 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',
}

我想在layer_id= models.ForeignKey('sdr_layer.id')之后使用python脚本插入class Parking(models.Model):。可能吗 ?怎么做?

3 个答案:

答案 0 :(得分:1)

您可以先将所有内容读入列表,将文本插入所需的文本(此处可以使用正则表达式或'find'/'index'等),然后只需重写文件。

答案 1 :(得分: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()

答案 2 :(得分:1)

您可以使用两种基本方法:

  1. 将整个文件作为单个字符串读入内存,使用正则表达式或仅str.replace()进行更改,然后将字符串写回文件,替换其中的内容。< / p>

  2. 逐行读取文件,将行复制到新文件,直到到达要添加行的位置。此时,将新行写入新文件。然后将其余行复制到新文件。完成后,重命名新文件以替换现有文件。

  3. 第二个更复杂,但可以使用太大而无法放入内存的文件。