要将文件中的某一个字符串替换为另一个,然后写入一个新文件中:
首先判断输入格式,至少需要输入被搜索的Text和替换的Text,输入输出文件可以是存在的文件,也可以是标准输入输出流
(os.path是个好东西)
import os, sysnargs = 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.stdoutif 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))
python cookbook —— Searching and Replacing Text in a
File
时间: 2024-11-09 21:58:22