分析python处理基本数据<一>

将代码分割开来分析:

# coding=utf-8
import linecache
import time

now = time.time()  # 代码开始时间


# 前期准备,整理数据
data_keys = ('bid', 'uid', 'username', 'v_class', 'content', 'img', 'created_at', 'source', 'rt_num', 'cm_num',
             'rt_uid', 'rt_username', 'rt_v_class', 'rt_content', 'rt_img', 'src_rt_num', 'src_cm_num', 'gender',
             'rt_bid', 'location', 'rt_mid', 'mid', 'lat', 'lon', 'lbs_type', 'lbs_title', 'poiid', 'links', 'hashtags',
             'ats', 'rt_links', 'rt_hashtags', 'rt_ats', 'v_url', 'rt_v_url')


keys = {data_keys[k]: k for k in xrange(0, len(data_keys))}

f = linecache.getlines('t.txt')

lines = [x[1:-2].split('","') for x in f]

关于import linecache

从网上查到linecache模块的作用是将文件读取到内存中,进行缓存,而不是每次都要从硬盘中读取,相比open方法快很多,是读取效率之源。

它也有他的读取文本的方式 getlines和getline

test.txt
liuhao
fighting
you can
trust you
believe in yourself
import linecache
A = linecache.getlines('test.txt')  # 打开文件返回一个列表,包含文件所有行。
B = linecache.getlines('test.txt')[0:2]  # 打开文件的0,1两行作为一个列表
C = linecache.getline('test.txt', 4)  # 打开文件的第四行,这里面4表示第几行从1开始算起
['liuhao\n', 'fighting\n', 'you can\n', 'trust you\n', 'believe in yourself\n']
['liuhao\n', 'fighting\n']
trust you

而time.time()是返回当前时间戳(1970年后的浮点秒数)

import time
print time.time()

关于xrange()和range()

xrange()是一个类,返回的是一个xrange对象,range返回的是一个列表,使用xrange遍历每次只返回一个值,range一次计算并返回所有值,因此xrange效率比range高

x = range(0, 5)
print x
y = xrange(0, 5)
print y
print y[0]
得到:
<span style="font-family: Arial, Helvetica, sans-serif;">[0, 1, 2, 3, 4]</span>
xrange(5)
0
关于他给的答案中拆分是lines = [x[1:-1].split('","') for x in f],这里面我给x[1:-1]改成了x[1:-2],因为结尾除了‘\n’还有一个”,这样保证lines中每个数据都不带引号

另外这种构造list的方法很值得学习 后面还有users = set(line[keys[username]] for line in lines),这样就构造了一个set,将set转换成list只要一步,比如

users = list(users) 这是users就从set变成了list



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值