zoukankan      html  css  js  c++  java
  • python小程序 修改文件中的某行文本

    公司的程序现在在windows下启动是通过一个批处理文件来启动,程序在启动前,需要读取配置文件和修改批处理脚本(需要配置ip地址和端口等等),这样就需要更改配置文件和批处理脚本。以前在linux下的时候,可以很方便得通过shell脚本来操作。但现在程序需要在windows下运行。windows下的shell没有linux强大,看好最近看了一些python的东西,就尝试写了个python的小程序来修改配置文件。

    假设和这个python脚本同目录下有一个批处理脚本'test.bat',批处理文本内容如下所示:

    1 @echo off
    2 @ping 192.168.1.1 -n 1
    3 @echo 'hello world'

    python代码如下:

     1 import sys
     2 #check number of arg, if the number is less than 1, exit 
     3 if (len(sys.argv) <= 1):
     4     print('arg num is error')
     5     exit()
     6 
     7 #read file's content in a list
     8 _list_content = [];
     9 
    10 #python读如文本后,会将换行符统一为'\n',但在windows下换行符是'\r\n',如果不注意会将文件的换行符全部转换为'\n',
    11 
    12 #这样虽然不影响批处理运行,但是,影响美观啊(在windows下);同时,读入的换行是'\r\n',写出来变成'\n',有些不地道...。
    13 
    14 #所以,需要将打开的模式设定为二进制模式,这样就不会更改里面的换行符了。
    15 
    16 #脚本的思想:将文件中的每行读取到list中,之后遍历list,对需要修改的某行进行修改
    17 fh = open('./config.bat', 'rb')
    18 for i in fh.readlines():
    19     _list_content.append(i)
    20 fh.close()
    21 
    22 _content = ''
    23 
    24 for i in _list_content:
    25     if(i.find('ping') >= 0):
    26         i = '@ping ' + sys.argv[1] + ' -n ' + sys.argv[2] + '\r\n'
    27     _content = _content + i
    28 
    29 open('./config.bat', 'wb').writelines(_content

    python的确很方便。由于我是刚开始写python,有很多细节还不熟悉,若程序中有不合适的地方,希望大家指出来。

    谢谢

    yetuweiba

  • 相关阅读:
    mysql CREATE USER
    ConvertHelper 通用类
    自定义属性
    为什么建议使用你LocalDateTime,而不是Date?
    使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器
    IDEA-SpringBoot项目设置热部署
    CentOS7中MySQL跨机器数据迁移
    Centos7 使用YUM安装Mariadb
    Linux下svn服务器迁移
    java dateutil工具类Date.add()
  • 原文地址:https://www.cnblogs.com/yetuweiba/p/2810426.html
Copyright © 2011-2022 走看看