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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM