python的文件处理

要用python处理一批文件,文本里Rd行中标签1之间的内容,如果出现管状符,将管状符两边的内容调换位置,如a|b替换为b|a文本的格式为:<0>Rd</0><1>a|b... 要用python处理一批文件,文本里Rd行中标签1之间的内容,如果出现管状符,将管状符两边的内容调换位置,如a|b 替换为b|a
文本的格式为:<0>Rd</0><1>a|b</1>
a,b是任意字符
可以将脚本拖到任意文件夹下运行,而不是指定文件夹得名字
展开
 我来答
glight99
推荐于2016-02-05 · TA获得超过889个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:228万
展开全部
import glob
import os
import re

filelist = glob.glob('*.txt')
p = re.compile(r'<1>(.*)\|(.*)</1>')
for fn in filelist:
try:
fin = open(fn, 'r')
fout = open('pro_' + os.path.split(fn)[1], 'w')
except:
print 'File open error!'
os.exit(1)
for line in fin.readlines():
if '<0>Rd</0>' in line:
line = p.sub('<1>\g<2>|\g<1></1>', line)
fout.write(line)
fin.close()
fout.close()

输入文件内容:
This is the first line
<0>Rd</0><1>a|b</1>
some test info
<0>Rd</0><1>red|blue</1>
输出文件内容:
This is the first line
<0>Rd</0><1>b|a</1>
some test info
<0>Rd</0><1>blue|red</1>

补充:见上,稍微改改就好了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tjuer
2010-01-31 · TA获得超过306个赞
知道答主
回答量:117
采纳率:100%
帮助的人:126万
展开全部
inf = open('a.txt', 'r');
outf = open('b.txt','w');

for line in inf:
tmpstr = re.sub(r'<0>Rd</0><1>(.+)[|](.+)</1>', r'<0>Rd</0><1>\2|\1</1>',line)
outf.writeline(tmpstr);

inf.close();
outf.close()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-01-31
展开全部
问题表述看不明白
感觉应该是用正则做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式