python文件数据分析治理提取

该博客介绍了如何使用Python读取包含中文路径的txt文件,通过正则表达式提取手机号码,并将这些号码去重后存储到Excel表格中。博主首先指出了Python早期版本读取中文路径的问题,然后详细阐述了代码实现的步骤,包括读取文件、合并数据、正则匹配、去重和导出数据。最后,程序成功生成了一个包含所有独特手机号码的Excel文件。

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

目录

前提提要

要求

思路

代码

运行结果

分析

 1)读取文件

 2)读取数据

 3)数据整理

 4)正则表达式匹配外加数据去重

 6)数据导出保存


前提提要

python2.0有无法直接读取中文路径的问题,需要另外写函数。python3.0在2018年的时候也无法直接读取。

现在使用的时候,发现python3.0是可以直接读取中文路径的。

需要自带或者创建几个txt文件,里面最好写几个数据(姓名,手机号,住址)

 

要求

写代码的时候最好,自己设几个要求,明确下目的。

  1. 需要读取对应目录路径的所有对应文件
  2. 按行读取出每个对应txt文件的记录
  3. 使用正则表达式获取每行的手机号
  4. 将手机号码存储到excel中

思路

        1)读取文件

        2)读取数据

        3)数据整理

        4)正则表达式匹配

        5)数据去重

        6)数据导出保存

代码

import glob
import re
import xlwt
filearray=[]
data=[]
phone=[]
filelocation=glob.glob(r'课堂实训/*.txt')
print(filelocation)
for i in range(len(filelocation)):
    file =open(filelocation[i])   
    file_data=file.readlines()      
    data.append(file_data)         
print(data)                        
combine_data=sum(data,[])
          
print(combine_data)                
for a in combine_data:            
    data1=re.search(r'[0-9]{11}',a) 
    phone.append(data1[0])         
phone=list(set(phone))              
print(phone)                      
print(len(phone))                  

#存到excel中
f=xlwt.Workbook('encoding=utf-8') 
sheet1=f.add_sheet('sheet1',cell_overwrite_ok=True)
for i in range(len(phone)):
    sheet1.write(i,0,phone[i])
f.save('phonenumber.xls')

运行结果

会生成一个excel文件

 

 

分析

import glob
import re
import xlwt
globe用来定位文件,re正则表达式,xlwt用于excel

  1)读取文件

filelocation=glob.glob(r'课堂实训/*.txt')
指定目录下的所有txt文件

 2)读取数据

for i in range(len(filelocation)):
    file =open(filelocation[i])    
    file_data=file.readlines()     
    data.append(file_data)        
print(data)  
将路径下的txt文件循环读取,按序号依次读取文件
打开每一次循环对应的文件
将每一次循环的txt文件的数据按行读取出来
使用append()方法将每一行的数据添加到data列表中
输出一下,可以看到将几个txt的文件数据以字列形式存在同一个列表

 3)数据整理

combine_data=sum(data,[])
 列表合并成一个列表

4)正则表达式匹配外加数据去重

print(combine_data)                
for a in combine_data:            
    data1=re.search(r'[0-9]{11}',a) 
    phone.append(data1[0])         
phone=list(set(phone))              
print(phone)                      
print(len(phone))

set()函数:无序去重,创建一个无序不重复元素集

 6)数据导出保存

#存到excel中
f=xlwt.Workbook('encoding=utf-8') 
sheet1=f.add_sheet('sheet1',cell_overwrite_ok=True)
for i in range(len(phone)):
    sheet1.write(i,0,phone[i])
f.save('phonenumber.xls')

Workbook('encoding=utf-8'):设置工作簿的编码

add_sheet('sheet1',cell_overwrite_ok=True):创建对应的工作表

write(x,y,z):参数对应行、列、值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王陈锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值