python 对中文文件求交集、并集、差集

本文介绍了如何在Python中对包含中文的文件进行集合操作,包括使用set模块的intersection()、union()和difference()函数,同时解决了在UTF-8编码下中文读取和显示的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心内容:

1. set模块 intersection() ,union(), difference() 函数的使用

2. 文件格式:一行一词, uft-8

3. 解决中文以str读入后转成list /set 时再以中文形式显示的问题

 

<pre class="python" name="code">#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
print sys.getdefaultencoding()
reload(sys)
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()
import codecs  #文件是unicode编码时启用


info = "D:/python/project1"
f1 = codecs.open(info +"/data/*.txt",'r')
f2 = codecs.open(info +u"/data/*.txt",'r')
s1 = set(f1.readlines())
s2 = set(f2.readlines())

print '交集'
print 'ins: %s'%(s1.intersection(s2))  
print '并集'
print 'uni: %s'%(s1.union(s2))  
print '差集'
print 'dif: %s'%(s1.difference(s2).union(s2.difference(s1))) 

print '交、并、差集计算 ok'


print '\n'+'ins:'
print ' '.join(s1.intersection(s2))
print '\n'+'uni:'
print ' '.join(s1.union(s2))
print '\n'+'dif:'
print ' '.join(s1.difference(s2).union(s2.difference(s1)))

print '中文显示 ok'


# 写入文件
r1 = open(r''+info+'/output/ins.txt','w')  
r2 = open(r''+info+'/output/uni.txt','w')  
r3 = open(r''+info+'/output/dif.txt','w')  
r1.write(' '.join(s1.intersection(s2))) 
r2.write(' '.join(s1.union(s2))) 
r3.write(' '.join(s1.difference(s2).union(s2.difference(s1)))) 
f1.close()
f2.close()
r1.close()
r2.close()
r3.close()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值