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))

python cookbook —— Searching and Replacing Text in a
File

时间: 2024-11-09 21:58:22

python cookbook —— Searching and Replacing Text in a File的相关文章

《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记

看<Python cookbook>的时候,第9.5部分,"定义一个属性可由用户修改的装饰器",有个装饰器理解起来花了一些时间,做个笔记免得二刷这本书的时候忘了 完整代码:https://github.com/blackmatrix7/python-learning/blob/master/python_cookbook/chapter_9/section_5/attach_wrapper.py 书中的装饰器(书中称之为访问器函数) def attach_wrapper(o

分享一个python cookbook的在线教程地址

分享一个python cookbook的在线教程地址: http://python3-cookbook.readthedocs.org/zh_CN/latest/ 翻译者:熊能

Python Cookbook(第3版)中文版pdf

下载地址:网盘下载 内容简介  · · · · · · <Python Cookbook(第3版)中文版>介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试.调试以及异常,C语言扩展等. 本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案.书中包含了大量实用的编程技巧和示例代码,并在Py

【转】Python数据类型之“文本序列(Text Sequence)”

[转]Python数据类型之“文本序列(Text Sequence)” Python中的文本序列类型 Python中的文本数据由str对象或字符串进行处理. 1.字符串 字符串是Unicode码值的不可变序列.字符串字面量有多种形式: 单引号:'允许嵌入"双"引号' 双引号:"允许嵌入'单'引号" 三引号:'''三个单引号''', """三个双引号""" 说明: a) 三引号的字符串可以跨越多行,所关联的空

python书籍推荐:Python Cookbook第三版中文

所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/44/ 来源:python黑洞网 内容简介 <Python Cookbook(第3版)中文版>介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测

Python Cookbook(第3版) 中文版 pdf完整版高清下载

Python Cookbook(第3版)中文版介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字.日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试.调试以及异常,C语言扩展等. 本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案.书中包含了大量实用的编程技巧和示例代码,并在Python 3.3环境下进行了测试,可以很方便地应用到实际项目中

python错误: SyntaxError: Non-ASCII character &#39;\xe5&#39; in file /home...

python中使用中文注释出现错误 SyntaxError: Non-ASCII character '\xe5' in file /home... 解决 在文件开头加入: # -*- coding: UTF-8 -*-    或者  #coding=utf-8 python错误: SyntaxError: Non-ASCII character '\xe5' in file /home...

Python标准库:内置函数open(file, mode=&#39;r&#39;, buffering=-1, encoding=None, errors=None, newline=None, closefd=T

本函数是打开一个文件并返回文件对象.如果文件不能打开,抛出异常OSError. 参数file是一个字符串表示的文件名称,或者一个数组表示的文件名称.文件名称可以是相对当前目录的路径,也可以是绝对路径表示. 参数mode是指明打开文件的模式.默认值是'r',表示使用文本的方式打开文件来读取. 'r'表示打开文件只读,不能写. 'w'表示打开文件只写,并且清空文件. 'x'表示独占打开文件,如果文件已经存打开就会失败. 'a'表示打开文件写,不清空文件,在文件后尾追加的方式写入. 'b'表示二进制的

python问题:SyntaxError:Non-ASCII character &#39;\xe5&#39; in file kNN.py on line 2, but no encoding declared;

因为Python在默认状态下不支持源文件中的编码所致.解决方案有如下三种: 一.在文件头部添加如下注释码: # coding=<encoding name> 例如,可添加# coding=utf-8 二.在文件头部添加如下两行注释码: #!/usr/bin/python # -*- coding: <encoding name> -*- 例如,可添加# -*- coding: utf-8 -*- 三.在文件头部添加如下两行注释码: #!/usr/bin/python # vim: