Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python将字符串插入到文本文件中?_Python - Fatal编程技术网

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

如何使用python将字符串插入到文本文件中?,python,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) geo

这是我的文本文件

# 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',
}

我想在
类停放(models.Model)之后插入
层id=models.ForeignKey('sdr\u layer.id')
使用python脚本。可能吗?如何做?

您可以先将所有内容读取到列表中,将文本插入所需位置(在这里可以使用正则表达式或“查找”/“索引”等),然后简单地重写文件。

您可以先将所有内容读取到列表中,将文本插入所需位置(在这里可以使用正则表达式或“查找”/“索引”等)定位,然后简单地重写文件。

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

#!/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()
  • 将整个文件作为单个字符串读入内存,使用正则表达式或仅使用
    str.replace()
    进行更改,然后将字符串写回文件,替换其中的内容

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


  • 第二种方法比较复杂,但会处理太大而无法放入内存的文件。

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

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

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

  • 第二个更为复杂,但可以处理太大而无法放入内存的文件