iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python如何在文件中部插入信息
  • 674
分享到

python如何在文件中部插入信息

2024-04-02 19:04:59 674人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录如何在文件中部插入信息实现在文本指定位置插入内容1. 场景2. 思路如何在文件中部插入信息 fp = open('D://代码开发//python.path//jhp//fadd

如何在文件中部插入信息

fp = open('D://代码开发//python.path//jhp//fadd.txt', 'r')           #指定文件
s = fp.read()                   #将指定文件读入内存
fp.close()                      #关闭该文件
a = s.split('\n')
a.insert(-1, 'a new line')    #在第 LINE+1 行插入
s = '\n'.join(a)                #用'\n'连接各个元素
fp = open('D://代码开发//Python.path//jhp//fadd.txt', 'w')
fp.write(s)
fp.close()

结果:

"properties":{
        "ZooKeeper.connect":"zookeeper.com:2015",
        "druid.discovery.curator.path":"/druid/discovery",
        "druid.selectors.indexing.serviceName":"druid/overlord",
        "commit.periodMillis":"12500",
        "consumer.numThreads":"1",
        "kafka.zookeeper.connect":"kafkaka.com:2181,kafka.com:2181,kafka.com:2181",
        "kafka.group.id":"test_dataSource_hod_dd"
a new line
    }

实现在文本指定位置插入内容

1. 场景

生产环境需要对大量的JSON文件进行写操作,在指定节点中插入一个属性。如下:

{
    "dataSources":{
        "test_dataSource_hod":{
            "spec":{
                "dataSchema":{
                    "dataSource":"test_dataSource_hod",
                    "parser":{
                        "type":"string",
                        "parseSpec":{
                            "timestampSpec":{
                                "column":"timestamp",
                                "fORMat":"yyyy-MM-dd HH:mm:ss"
                            },
                            "dimensionsSpec":{
                                "dimensions":[
                                    "method",
                                    "key"
                                ]
                            },
                            "format":"json"
                        }
                    },
                    "granularitySpec":{
                        "type":"uniform",
                        "segmentGranularity":"hour",
                        "queryGranularity":"none"
                    },
                    "metriCSSpec":[
                        {
                            "name":"count",
                            "type":"count"
                        },
                        {
                            "name":"call_count",
                            "type":"longSum",
                            "fieldName":"call_count"
                        },
                        {
                            "name":"succ_count",
                            "type":"longSum",
                            "fieldName":"succ_count"
                        },
                        {
                            "name":"fail_count",
                            "type":"longSum",
                            "fieldName":"fail_count"
                        }
                    ]
                },
                "ioconfig":{
                    "type":"realtime"
                },
                "tuninGConfig":{
                    "type":"realtime",
                    "maxRowsInMemory":"100000",
                    "intermediatePersistPeriod":"PT10M",
                    "windowPeriod":"PT10M"
                }
            },
            "properties":{
                "task.partitions":"1",
                "task.replicants":"1",
                "topicPattern":"test_topic"
            }
        }
    },
    "properties":{
        "zookeeper.connect":"zookeeper.com:2015",
        "druid.discovery.curator.path":"/druid/discovery",
        "druid.selectors.indexing.serviceName":"druid/overlord",
        "commit.periodMillis":"12500",
        "consumer.numThreads":"1",
        "kafka.zookeeper.connect":"kafkaka.com:2181,kafka.com:2181,kafka.com:2181",
        "kafka.group.id":"test_dataSource_hod_dd"
    }
}

需要在最后的properties节点中添加一个"druidBeam.randomizeTaskId":"true"属性。

2. 思路

大概的思路如下:

  • 扫描文件夹下所有需要更改的文件
  • 在文件中确认需要更改的位置
  • 插入新的字符

我觉得稍微有点难的地方是在确认插入位置的地方。我们知道的是"druid.selectors.indexing.serviceName":"druid/overlord",这个东西肯定在这个节点中,那我只要能找到这个东西,然后在他的后面 插入就OK了。

好了,思路已经有了,写代码吧。

#!/usr/bin/python
# coding:utf-8

import os

old_string = '"druid/overlord"'
new_string = ('"druid/overlord",' +
              '\n        ' +
              '"druidBeam.randomizeTaskId":"true",')

def insertrandomproperty(file_name):
    if '.json' in file_name:
        with open(file, 'r') as oldfile:
            content = oldfile.read()
            checkandinsert(content, file)

    else:
        pass

def checkandinsert(content, file):
    if 'druidBeam.randomizeTaskId' not in content:
       # to avoid ^M appear in the new file because of different os
       # we replace \r  with '' 
        new_content = content.replace(old_string, new_string).replace('\r', '')

        with open(file, 'w') as newfile:
            newfile.write(new_content)
    else:
        pass

if __name__ == '__main__':
    files = os.listdir('/home/tranquility/conf/service_bak')
    os.chdir('/home/tranquility/conf/service_bak')
    for file in files:
        insertrandomproperty(file)

就是在内存中更新内容,然后重新写回到文件中。代码只是粗略的表达了思路,可以根据需求继续修改优化

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: python如何在文件中部插入信息

本文链接: https://www.lsjlt.com/news/120918.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python如何在文件中部插入信息
    目录如何在文件中部插入信息实现在文本指定位置插入内容1. 场景2. 思路如何在文件中部插入信息 fp = open('D://代码开发//Python.path//jhp//fadd...
    99+
    2024-04-02
  • 如何在Discuz中去掉底部信息?
    如何在Discuz中去掉底部信息? Discuz是国内知名的论坛系统之一,许多网站使用Discuz搭建论坛社区。在使用Discuz的过程中,有时候我们可能希望去掉底部信息,以使论坛更加...
    99+
    2024-03-10
    去掉 底部 discuz
  • 在vue中如何引入外部less文件
    目录vue引入外部less文件vue引入lang=“less“报错的解决vue引入外部less文件 首先vue环境搭建成功 一、安装 less 和less-l...
    99+
    2024-04-02
  • 如何用python提取txt文件中的特定信息并写入Excel
    如何用python提取txt文件中的特定信息并写入Excel,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。问题描述:我有一个这样的数据集叫test_result_test....
    99+
    2023-06-21
  • 在vue中如何引入外部的css文件
    目录vue中引入外部css文件1. 全局引入2. 局部引入相对路径3. 局部引入绝对路径css-loader导致vue中样式失效的坑问题描述环境原因方案vue中引入外部css文件 在...
    99+
    2024-04-02
  • android应用如何将位置信息写入JPEG文件中
    这篇文章给大家介绍android应用如何将位置信息写入JPEG文件中,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。核心代码public String decimalToDMS(double ...
    99+
    2023-05-31
    android jpeg roi
  • 如何在 Mongodb 中插入 Python 对象?
    您可以使用Python中的pymongo库连接到MongoDB数据库并使用它在Python中插入、更新、删除等对象。该库支持开箱即用的 Python 日期时间对象,您无需执行任何特殊操作即可使用 PyMongo 在 Mongo 中插入日期。...
    99+
    2023-10-22
  • 如何获取在 Go 中完成的 SQL 插入的错误详细信息?
    php小编鱼仔在使用Go语言进行SQL插入时,有时候可能会遇到错误。在这种情况下,了解错误的详细信息对于定位和解决问题非常重要。幸运的是,Go语言提供了一种简单的方法来获取SQL插入错...
    99+
    2024-02-09
    go语言
  • ASP如何在二维码中嵌入信息?
    二维码的应用越来越广泛,从商品销售到身份识别都有它的身影。而在二维码中嵌入信息也是很重要的一种应用场景,比如在电子票据或者支付中,嵌入身份信息和金额信息等等。那么,ASP如何在二维码中嵌入信息呢?下面我们来详细讲解。 首先,我们需要明确一...
    99+
    2023-06-16
    二维码 容器 ide
  • JS如何在头部或尾部插入元素
    本篇内容主要讲解“JS如何在头部或尾部插入元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS如何在头部或尾部插入元素”吧!添加数组元素有多种方式:可以在数组...
    99+
    2024-04-02
  • 使用python怎么获取文件的部分信息
    这篇文章将为大家详细讲解有关使用python怎么获取文件的部分信息,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python有哪些常用库python常用的库:1.requesuts;2.sc...
    99+
    2023-06-14
  • shell中如何实现插入文本到文件
    小编给大家分享一下shell中如何实现插入文本到文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先,打开你的 Terminal。改写文件如果你刚刚创建了一个文...
    99+
    2023-06-09
  • 怎么在python中提取文本信息
    怎么在python中提取文本信息?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究...
    99+
    2023-06-14
  • 如何在页面底部引入javascript文件
    这篇文章将为大家详细讲解有关如何在页面底部引入javascript文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在页面底部引入javascript文件要记住一个原则,就是让页面以最快的速度呈现在用户面...
    99+
    2023-06-27
  • 如何在python中读取和写入文件
    这期内容当中小编将会给大家带来有关如何在python中读取和写入文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决...
    99+
    2023-06-14
  • 如何在Python中读取和写入文件?
    Python是一种流行的编程语言,它提供了各种功能,可用于处理文件。对于大多数应用程序,读写文件是必不可少的。在本文中,我们将介绍如何在Python中读取和写入文件。 一、文件的打开和关闭 在Python中打开文件使用内置函数open(),...
    99+
    2023-08-20
    文件 实时 接口
  • 怎么在C++二进制文件中注入git信息详解
    在后端生产环境中,为了方便定位问题,我们需要根据一个binary文件获取其对应的git信息,包括编译出该binary所用的代码分支、commitid、时间戳、commit messa...
    99+
    2024-04-02
  • python中如何输入文件
    在Python中,可以使用`open()`函数打开一个文件,并使用`read()`或`readlines()`方法读取文件内容。以下...
    99+
    2023-09-27
    python
  • python如何在字符串中插入变量
    共三个用法,如下所示 使用字符串的format()函数,通过" 字{0}符{1}串".format(变量1,变量2,...)的方式,所有变量都作为format()函数的参数,在字符串中用“{}”来接收...
    99+
    2023-09-29
    python 开发语言
  • 无法获取配置 toml 文件以将信息加载到 telegraf 输入插件
    php小编小新今天为大家介绍如何解决无法获取配置 toml 文件以将信息加载到 telegraf 输入插件的问题。在使用 telegraf 进行数据采集时,有时会遇到无法读取配置文件的...
    99+
    2024-02-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作