这是很久以前写的一段代码,很简单很基础。最近突然用到,这里把它分享出来,希望可以为有需要的朋友提供帮助。
以及欢迎阅读这一系列第二篇:地铁大数据挖掘之客流数据预处理——从原始一卡通数据提取城市地铁客流(二)
1 解压文件
这里以上海城市开放大赛提供的数据为样例(提取码m4og),需要的朋友可以进行下载。把数据进行解压后,看到是一个个压缩文件:
接下来,可以用下面这段代码对这些数据进行解压:
import gzip
import os
from datetime import datetime
import shutil
#解压文件
def un_gz(file_name):
"""ungz zip file"""
f_name = file_name.replace(".gz", "")
#获取文件的名称,去掉
g_file = gzip.GzipFile(file_name)
#创建gzip对象
open(f_name, "wb+").write(g_file.read())
#gzip对象用read()打开后,写入open()建立的文件中。
g_file.close()
#关闭gzip对象
date_l=[datetime.strftime(x,'%Y%m%d') for x in list(pd.date_range('20150401','20150430'))]
file_name=[]
for x in date_l:
filename="SPTCC-"+x+'.csv.gz'
file_name.append(filename)
for each in file_name:
un_gz(each)
#创建文件夹
os.mkdir('railway_data')
#将解压后的文件移至新文件夹
file_name2=[]
for x in date_l:
filename="SPTCC-"+x+'.csv'
file_name2.append(filename)
for each in file_name2:
shutil.move(each,"railway_data")