本文共 1515 字,大约阅读时间需要 5 分钟。
本文使用python编写程序,实现如下功能:将文件中的指定子串 修改为 另外的子串 编写的python程序,文件名是file_replace.py,具体代码如下:#!/usr/bin/env python#_*_ coding:utf-8 _*_import sys,osif len(sys.argv)<4 or len(sys.argv)>5: sys.exit('There needs four or five parameters')elif len(sys.argv)==4: print 'usage:./file_replace.py old_text new_text filename'else: print 'usage:./file_replace.py old_text new_text filename --bak'old_text,new_text=sys.argv[1],sys.argv[2]file_name=sys.argv[3]f=file(file_name,'rb')new_file=file('.%s.bak' % file_name,'wb')#文件名以.开头的文件是隐藏文件for line in f.xreadlines():#f.xreadlines()返回一个文件迭代器,每次只从文件(硬盘)中读一行 new_file.write(line.replace(old_text,new_text))f.close()new_file.close()if '--bak' in sys.argv: #'--bak'表示要求对原文件备份 os.rename(file_name,'%s.bak' % file_name) #unchanged os.rename('.%s.bak' % file_name,file_name) #changedelse: os.rename(file_name,'wahaha.txt')#此处也可以将原文件删除,以便下一语句能够正常执行 os.rename('.%s.bak' % file_name,file_name)下面是代码执行的一个例子: song@ubuntu:~$ more hello.txt Hello python Hello world python Hello world Hello song@ubuntu:~$ python file_replace.py Hello love hello.txt --bak usage:./file_replace.py old_text new_text filename --bak song@ubuntu:~$ ls Desktop Documents file_replace.py Music systemExit.py diff1.txt Downloads hello.txt Pictures Templates diff.txt examples.desktop hello.txt.bak Public Videos song@ubuntu:~$ more hello.txt love python love world python love world love song@ubuntu:~$ more hello.txt.bak Hello python Hello world python Hello world Hello
song@ubuntu:~$
(完)
转载地址:http://kjyai.baihongyu.com/