1. 程式人生 > >[python小工具] 實現替換檔案裡面的內容

[python小工具] 實現替換檔案裡面的內容

參考http://www.cnblogs.com/www1707/p/5858212.html

可以替換文字中指定的字元

思路擴充套件:

配上正則表示式,可以直接向文字中插入指定的內容

也可以刪除指定的內容

加上上一篇寫的在資料夾下查詢指定的檔案, 可以擴充為 批量修改檔案的指令碼

#!/usr/bin/python
# -*- coding=UTF-8 -*-

import sys
import os

len_argv=len(sys.argv)
#print '傳引數量',len_argv-1

old_words='1'

if   len_argv <  4:
	print '引數錯誤:python '+sys.argv[0]+' 需要編輯的檔案 被替換的字串 提成成的字串 [另存成的檔案]'

elif len_argv >  5:
	print '引數錯誤:python '+sys.argv[0]+' 需要編輯的檔案 被替換的字串 提成成的字串 [另存成的檔案]'

else:
	if not os.path.isfile(sys.argv[1]):
		print '%s 檔案不存在' % sys.argv[1]
		sys.exit()
	s_file  = file(sys.argv[1],'r+')
	old_str = sys.argv[2]
	new_str = sys.argv[3]
	d_file  = file(sys.argv[1]+'.tmp','w')
	for line in s_file.readlines():
		d_file.writelines(line.replace(old_words,''))
		'''
		if 'ONLINE' in line:
			print line
			d_file.writelines(line.replace(old_words,''))
		else:
			d_file.writelines(line)
		'''
	s_file.close()
	d_file.close()

	if len_argv == 4:
		os.rename(sys.argv[1]+'.tmp',sys.argv[1])
	else:
		os.rename(sys.argv[1]+'.tmp',sys.argv[4])