簡體   English   中英

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

[英]How to insert a string of characters into a text file using 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 腳本。 可能嗎? 怎么做?

您可以先將所有內容讀入列表,將文本插入所需的(這里您可以使用正則表達式或'find'/'index'等)position,然后簡單地重寫文件。

#!/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()

您可以使用兩種基本方法:

  1. 將整個文件作為單個字符串讀入 memory,使用正則表達式或只是str.replace()進行更改,然后將字符串寫回文件,替換其中的內容。

  2. 逐行讀取文件,將行復制到新文件,直到到達要添加行的位置。 此時,將新行寫入新文件。 然后將這些行的 rest 復制到新文件中。 完成后,重命名新文件以替換現有文件。

第二個更復雜,但適用於太大而無法放入 memory 的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM