如何用Python将字符插入文本文件?

0 投票
3 回答
3315 浏览
提问于 2025-04-16 19:07

这是我拥有的文本文件。

# 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

你可以用两种基本的方法:

  1. 把整个文件的内容一次性读入内存,变成一个字符串,然后用正则表达式或者直接用 str.replace() 来修改这个字符串,最后再把修改后的字符串写回文件,替换掉原来的内容。

  2. 逐行读取文件,把每一行复制到一个新文件,直到你到达想要添加新行的位置。这个时候,把新行写入新文件。然后继续把剩下的行复制到新文件里。完成后,把新文件重命名,这样它就可以替换掉原来的文件。

第二种方法虽然更复杂,但适用于那些太大而无法一次性放进内存的文件。

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()

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答