python中文件分类_Python中如何按照一列属性分类输出txt文档

满意答案

t011655040b3ed000bf.jpg

fsi288

2013.10.05

t011655040b3ed000bf.jpg

采纳率:45% 等级:12

已帮助:6125人

# Step 1: 编写原始数据文档解析 (Parser)

# Step 2: 编写数据自动分类存储 (Collections)

import itertools

import re

patt = re.compile('(?P)\s+(?P\S+)', re.I | re.U | re.X)

class Parser:

def __init__(self, patt):

self.patt = patt

def __call__(self, srcfile):

for m in itertools.ifilter(lambda x: x,

itertools.imap(lambda x: self.patt.match(x),

open(srcfile))):

yield m.groupdict()

LINEFEED = '\n'

class Collections:

MAXSIZE = 16384

def __init__(self, root):

self.root = root

self.buff, self.size = {}, 0

def flush(self):

for k, lns in self.buff.items():

with open(os.path.join(self.root, '%s.txt'%k), 'at') as handle:

handle.writelines(itertools.imap(lambad x: x+LINEFEED, lns)

self.buff, self.size = {}, 0

def append(self, k, ln):

self.buff.setdefault(k, []).append(ln)

self.size += 1

if self.size >= self.MAXSIZE:

self.flush()

parsered = Parser(patt)

collections = Collections(storageroot)

for m in parsered(datasourcefile):

collections.append(m['k'], m['ln'])

collections.flush()

02分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值