首页 > 代码库 > python cookbook —— Searching and Replacing Text in a File

python cookbook —— Searching and Replacing Text in a File

要将文件中的某一个字符串替换为另一个,然后写入一个新文件中:

首先判断输入格式,至少需要输入被搜索的Text和替换的Text,输入输出文件可以是存在的文件,也可以是标准输入输出流

(os.path是个好东西)

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_file.close()
    input_file.close()

如果使用标准的输入输出流,Mac下结束输入时按Ctrl+D(本人开始时习惯性犯二,折腾了很久不知怎么结束输入 -_-!)

 

如果读写的文件不是很大的话(一般大小的文件,现在的内存完全可以整个读进来)

那么处理起来可以更加简便:

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