广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python读写properties文件
  • 680
分享到

Python读写properties文件

文件Pythonproperties 2023-01-31 06:01:03 680人浏览 独家记忆

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

摘要

最近用python写个工具,涉及到properties文件的读写操作。发现Python并没有提供操作properties文件的库,只有一个 ConfigParser 类来支持 .ini 文件的读写,这显然不是我想要的,于是一番折腾

最近用python写个工具,涉及到properties文件的读写操作。发现Python并没有提供操作properties文件的库,只有一个 ConfigParser 类来支持 .ini 文件的读写,这显然不是我想要的,于是一番折腾后整出下面这个工具类:

###property.py

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


import re
import os
import tempfile

class Properties:

    def __init__(self, file_name):
        self.file_name = file_name
        self.properties = {}
        try:
            fopen = open(self.file_name, 'r')
            for line in fopen:
                line = line.strip()
                if line.find('=') > 0 and not line.startswith('#'):
                    strs = line.split('=')
                    self.properties[strs[0].strip()] = strs[1].strip()
        except Exception, e:
            raise e
        else:
            fopen.close()

    def has_key(self, key):
        return self.properties.has_key(key)

    def get(self, key, default_value=''):
        if self.properties.has_key(key):
            return self.properties[key]
        return default_value

    def put(self, key, value):
        self.properties[key] = value
        replace_property(self.file_name, key + '=.*', key + '=' + value, True)

def parse(file_name):
    return Properties(file_name)


def replace_property(file_name, from_regex, to_str, append_on_not_exists=True):
    file = tempfile.TemporaryFile()         #创建临时文件

    if os.path.exists(file_name):
        r_open = open(file_name,'r')
        pattern = re.compile(r'' + from_regex)
        found = None
        for line in r_open: #读取原文件
            if pattern.search(line) and not line.strip().startswith('#'):
                found = True
                line = re.sub(from_regex, to_str, line)
            file.write(line)   #写入临时文件
        if not found and append_on_not_exists:
            file.write('\n' + to_str)
        r_open.close()
        file.seek(0)

        content = file.read()  #读取临时文件中的所有内容

        if os.path.exists(file_name):
            os.remove(file_name)

        w_open = open(file_name,'w')
        w_open.write(content)   #将临时文件中的内容写入原文件
        w_open.close()

        file.close()  #关闭临时文件,同时也会自动删掉临时文件
    else:
        print "file %s not found" % file_name

###使用方式:

在要使用property工具的python文件中导入property.py文件即可使用
示例(test.py):

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

import property

file_path = '/Users/billy/Desktop/bak/test.properties' #要操作的properties文件的路径
props = property.parse(file_path)   #读取文件
props.put('key_a', 'value_a')       #修改/添加key=value
print props.get('key_a')            #根据key读取value
print "props.has_key('key_a')=" + str(props.has_key('key_a'))   #判断是否包含该key1

测试效果:
测试代码运行效果
注意,操作的目标文件要存在,否则报错:
找不到文件

###参考文档
Python实用脚本(1):读取Properties文件

--结束END--

本文标题: Python读写properties文件

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

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

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

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

下载Word文档
猜你喜欢
  • Python读写properties文件
    最近用python写个工具,涉及到properties文件的读写操作。发现Python并没有提供操作properties文件的库,只有一个 ConfigParser 类来支持 .ini 文件的读写,这显然不是我想要的,于是一番折腾...
    99+
    2023-01-31
    文件 Python properties
  • Java如何读写Properties配置文件(Properties类)
    目录Java读写Properties配置文件Properties基本介绍Properties常用方法Properties读取配置文件Properties写入配置文件propertie...
    99+
    2023-05-20
    Java读写Properties配置文件 Java Properties类 Java Properties配置文件
  • Java读写.properties文件解决中文乱码问题
    一般使用到properties配置文件,一般都是在spring项目里面,直接由框架帮你读,当然,你也得考虑到编码的问题。但是现在要是要求使用Java直接读写properties文件,就发现很多的问题,比如,我的properties文件的编码...
    99+
    2023-05-30
    properties 乱码 ava
  • python-yml文件读写与xml文件读写
    目录一、python-yml文件读写更新yml的数值二、python-xml文件读写寻找 XML 节点修改 XML 数据建立 XML 结构XPath 搜索XML 排版一、python...
    99+
    2022-11-11
  • python读写文件
    python 文件操作 本文系海特网编程技术斑竹Cute所发表,版权归海特网与Cute所有,转载请保留完整信息 #打开文件和进行写操作 f=open('test.txt','w') f.write('hello')&...
    99+
    2023-01-31
    文件 python
  • Python文件读写
    python文件读写 读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写...
    99+
    2023-01-31
    文件 Python
  • springboot怎么读取properties文件
    在Spring Boot中,可以使用`@Value`注解和`Environment`接口来读取properties文件。1. 使用`...
    99+
    2023-09-25
    springboot
  • Python数据读写之Python读写CSV文件
    目录1. 读取CSV文件 csv.reader()2. 写入CSV文件1. 读取CSV文件 csv.reader() 该方法的作用相当于就是通过 ',' 分割csv格...
    99+
    2022-11-11
  • python之读写文件
    在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件...
    99+
    2023-01-30
    文件 python
  • Python 7.1 文件读写
    文件读写文件读写是我们最常见的IO操作。Python内置了文件读写的函数,用法和C是兼容的。读写文件前,我们必须先了解下,在磁盘上读写文件的功能是由操作系统实现的,现代操作系统不允许普通程序操作磁盘,所以,读写文件就是请求操作系统打开一个文...
    99+
    2023-01-31
    文件 Python
  • Python读写yaml文件
    目录1.关于yaml2.yaml数据结构3.yaml文件格式1.关于yaml yaml基本语法规则: 大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空...
    99+
    2022-11-13
  • Python读写CSV文件
    csv模块方法csv.readerimport csv    with open('temp.csv','rb') as f:         reader = csv.reader(f)         for row in reader...
    99+
    2023-01-31
    文件 Python CSV
  • Python 3.5 读写文件
    在Python中读写文件不需要像Java或.Net一样要另外导入io"包",可直接使用open方法open() 返回一个文件对象,并且通常使用两个参数:open(filename, mode)>>>f = open('yo...
    99+
    2023-01-31
    文件 Python
  • python读写excel文件
    项目中需要生成excel表格,在网上查了一些资料后,整理记录下。 1. 读excel表格 1 ''' 2 读取XLS,XLSX文件 3 ''' 4 def readExcelFile(filename): 5 # 打开...
    99+
    2023-01-30
    文件 python excel
  • Java项目中读取properties文件
    点击(此处)折叠或打开...
    99+
    2023-06-03
  • 【Python】Python读写文件操作
    原帖地址:http://blog.csdn.net/adupt/article/details/44356151.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭...
    99+
    2023-01-31
    操作 文件 Python
  • Python之gzip文件读写
    gzip文件读写的时候需要用到Python的gzip模块。具体使用如下: # -*- coding: utf-8 -*- import gzip # 写文件 f_out = gzip.open("xxx.gz", "wb") ...
    99+
    2023-01-31
    文件 Python gzip
  • Python基础:文件读写
    由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题。举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这100M数据可能需要10秒,怎么办呢?有两种办...
    99+
    2023-01-31
    文件 基础 Python
  • python文件读写(open参数,文件
    1.基本方法 文件读写调用open函数打开一个文件描述符(描述符的个数在操作系统是定义好的) python3情况下读写文件: f = open('py3.txt','wt',encoding='utf-8') f.write(...
    99+
    2023-01-31
    文件 参数 python
  • 怎么使用J2SE读取Properties文件
    小编给大家分享一下怎么使用J2SE读取Properties文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用J2SE读取Properties文件的六种方式:1...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作