2007-07-06

 

Python Cookbook 2.3 在文件中进行查找和替换

需求:

要在文件中替换字符串.

讨论:

字符串替换在字符串处理中非常常见,可以使用string对象的replace方法来解决.我们在本节要做的工作是从文件中获取信息并保存到文件中去:

import os, sys
nargs = len(sys.argv)
if not 3 <= nargs <= 5:
    print "usage: %s search_text replace_text [infile [outfile]]" % \
        os.path.basename(sys.argv[0])
else:
    stext = sys.argv[1]
    rtext = sys.argv[2]
    input_file = sys.stdin
    output_file = sys.stdout
    if nargs > 3:
        input_file = open(sys.argv[3])
    if nargs > 4:
        output_file = open( sys.argv[4], 'w')
    for s in input_file:
        output_file.write( s.replace(stext, rtext))
    output.close( )
    input.close( )

本节非常简单,我们也没有比较把简单的问题讲的很复杂是不是?这个脚本分析输入参数,获得要替换的字符串,然后分别从文件中读取(或者标准输入),用循环处理替换字符串,再写入文件中(或标准输出),最后关闭了两个文件.
如果我们的内存能够容纳两个文件的大小,我们完全可以一次处理替换操作,这样对于小于100M的文件是没有问题的:

output_file.write(input_file.read( ).replace(stext, rtext))

这样可以更快捷的完成我们的需求.


Comments: 发表评论



<< Home

This page is powered by Blogger. Isn't yours?