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是任意字符
可以将脚本拖到任意文件夹下运行,而不是指定文件夹得名字 展开
文本的格式为:<0>Rd</0><1>a|b</1>
a,b是任意字符
可以将脚本拖到任意文件夹下运行,而不是指定文件夹得名字 展开
展开全部
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>
补充:见上,稍微改改就好了。
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>
补充:见上,稍微改改就好了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()
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
展开全部
问题表述看不明白
感觉应该是用正则做
感觉应该是用正则做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询