python 文本替换 速度_使用python替换文本文件中的多行

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:19   1248   0

我知道如何在python中替换一个字符串,但我正在努力使其工作,可能是因为这是一个文本块,而不是我想要替换的一行。在

我有一堆文本文件,其中在多个位置重复了以下文本块:LIVEBLAH Information Provided By:

BLAH ONLINE

A division of Blahdeblah BlahBlah Information, Inc.

Washington, DC New York, NY Chicago, IL

Los Angeles, CA Miami, FL Dallas, TX

For Additional Information About LIVEBLAH, Call

1-800-XXX-XXXX

or Visit Us on the World Wide Web at

http://www.blahdeblah.com

我想用字符串“start body”替换出现的每一个文本块

这是我正在尝试的代码:import os,glob

path = 'files'

key="""

LIVEBLAH Information Provided By:

BLAH ONLINE

A division of Blahdeblah BlahBlah Information, Inc.

Washington, DC New York, NY Chicago, IL

Los Angeles, CA Miami, FL Dallas, TX

For Additional Information About LIVEBLAH, Call

1-800-XXX-XXXX

or Visit Us on the World Wide Web at

http://www.blahdeblah.com"""

for filename in glob.glob(os.path.join(path, '*.txt')):

with open(filename, 'r') as f:

# read entire file into file1

file1 = f.read()

# replace block of text with proper string

file1 = file1.replace(key, "start body")

# write into a new file

with open(filename+'_new', 'w') as f:

f.write(file1)

有人能告诉我为什么replace()方法不能处理文本块吗?我该怎么做才能让它成功呢?在

编辑--

我尝试了另一种方法:

^{pr2}$

这给出了一个奇怪的结果——对于某些文件来说,它工作得很好。对于其他人,它只将字符串“LIVEBLAH Information By:”替换为“start body”,但文本块的其余部分保持原样。对于其他一些情况,index()会引发一个错误,指出它在文件中找不到字符串“LIVEBLAH Information Provided By:”,尽管它显然就在那里。

怎么回事?在

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP