对python读写文件去重、RE、set的使用详解

yipeiwu_com7年前Python基础

如下所示:

# -*- coding:utf-8 -*-
 
from datetime import datetime
import re
 
 
def Main():
 sourcr_dir = '/data/u_lx_data/fudan/muying/muying_11yue_all.txt'
 target_dir = '/data/u_lx_data/fudan/muying/python/uid_regular_get.txt'
 
 uset = set() #去重
 
 print("开始。。。。。")
 print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
 
 with open(target_dir, 'w+') as f_write:
  with open(sourcr_dir, 'r') as f_scorce:
   for line in f_scorce:
   line = line.strip().split("\t")
   # 宝宝树
   if line[2] == 'babytree.com':
    uidList = re.findall(r'.*NL=u%02(u\d+)', line[3], re.I)
    if uidList:
     # 去重代码
     if uidList[0] not in uset:
      f_write.write(uidList[0] + "\n")
      uset.add(uidList[0])
      print("宝宝树已完成")
 
   # 柚宝宝
   elif line[2] == 'youzibuy.com':
    if line[4].find("yunqi.youzibuy.com/tae_top_notify") != -1:
     uidList = re.findall(r'.*myuid=(\d+)', line[4], re.I)
     if uidList:
      if uidList[0] not in uset:
       f_write.write(uidList[0] + "\n")
       uset.add(uidList[0])
       print("柚宝宝已完成")
 
   # 妈妈帮
   elif line[2] == 'mmbang.com':
    uidList = re.findall(r'.*uid=(\d+)', line[3], re.I)
    if uidList:
     if uidList[0] not in uset:
      f_write.write(uidList[0] + "\n")
      uset.add(uidList[0])
      print("妈妈帮已完成")
 
   # 妈妈网
   elif line[2] == 'mama.cn':
    if line[4].find("mapi.mama.cn/feed/users/show") != -1:
     uidList = re.findall(r'.*friend_uid=(\d+)', line[4], re.I)
     if uidList:
      if uidList[0] not in uset:
       f_write.write(uidList[0] + "\n")
       uset.add(uidList[0])
    if line[4].find("mamaquan/mmq_thread") != -1:
     uidList = re.findall(r'.*uid=(\d+)', line[4], re.I)
     if uidList:
      if uidList[0] not in uset:
       f_write.write(uidList[0] + "\n")
       uset.add(uidList[0])
       print("妈妈网已完成")
 
   # 育儿网
   elif line[2] == 'ci123.com':
    uidList = re.findall(r'.*ci123js=([a-zA-Z]+\d+)', line[3], re.I)
    if uidList:
     if uidList[0] not in uset:
      f_write.write(uidList[0] + "\n")
      uset.add(uidList[0])
      print("育儿网已完成")
 
 print("完成。。。。。")
 print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
if __name__ == "__main__":
 Main()

以上这篇对python读写文件去重、RE、set的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python使用email模块对邮件进行编码和解码的实例教程

解码邮件 python自带的email模块是个很有意思的东西,它可以对邮件编码解码,用来处理邮件非常好用。 处理邮件是一个很细致的工作,尤其是解码邮件,因为它的格式变化太多了,下面先看看...

在Python中过滤Windows文件名中的非法字符方法

网上有三种写法: 第一种(所有非法字符都不转义): def setFileTitle(self,title): fileName = re.sub('[\/:*&#...

python3下使用cv2.imwrite存储带有中文路径图片的方法

由于imwrite前使用编码在python3中已经不适用,可用imencode代替,以下代码是从视频中获取第2帧保存在中文文件夹下的实例: cap = cv2.VideoCaptur...

利用python实现冒泡排序算法实例代码

利用python实现冒泡排序算法实例代码

冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没...

用python记录运行pid,并在需要时kill掉它们的实例

我在跑爬虫程序的时候,由于爬虫程序的等待目标服务器返回数据的时间很长,而cpu占用很低,所以经常挂着代理一跑就跑好几百个。但是爬虫程序通常是写了死循环,或直到分配给该进程的任务都跑完才退...