添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

1. csv.reader读取

之前一直 import csv 来进行csv文件的读写,但是数据量大的时候,载入内存的速度有点慢。但是类似 readline ,可以很方便的忽略头信息。当然写法非常不Pythonic

f = file(path, 'r')
reader = csv.reader(f)
reader.next()
for line in reader:
	process()

2. with…open读取文件

一种比较Pythonic的写法,with可以负责处理open和close文件,包括抛出内部异常等,而 for line in f 将文件对象 f 当作迭代对象,将自动处理IO缓冲和内存管理,读取大文件时效率更高,经测试,500MB左右的文件,载入内存的时间在25s左右。就是比较爽的是,为了忽略第一行的头信息,需要加个 count 做判断,虽然开销不大,但是很不爽。

with open(path, 'r') as f:
	for line in f:
		process()

3. fileinput处理

用到了Python的fileinput模块。

import fileinput
for line in fileinput.input([path]):
	process()

4. Python写文件

将文件内容载入内存,进行了一定的处理后,存储在list或者dict中,需要写回文件。

file_ptr = open(path, 'w')
for line in dataset:
	new_line = ','.join(line) + '\n'
	file_ptr.write(new_line)
file_ptr.close()
Published 25 March 2015