python的文件系统---python入门学习(二)
2016-12-08 10:57
162 查看
从实用角度出发,根据数据挖掘中最长使用的语法和数据类型出发,对Python进行学习,主要包含一下几个模块:数据类型、文件系统、函数、类和对象。学习了一段时间python之后,python相较于matlab最大的区别是编程思想和BIF。由原来的面向过程到现在的面向对象,python无处不对象,这句话体会会随着对python的了解而更加深刻。初学难免有疏漏或者错误,欢迎大家指正。
文件系统
1.打开文件
f = open(file,'w') 打开文件,参数默认为读
‘r’ 读,默认模式
‘w’ 写,源文件存在则覆盖
‘a’ 写,源文件存在则在末尾继续写
‘x’ 如果文件存在则会引发异常
注:这些模式选项是可以同时使用的
之前读取数据速度很慢,主要是因为对python不熟悉,使用的是矩阵拼接的方法,现在重新写了一下读取数据代码:
读取效率比较高,读取20W行代码并且转化为矩阵需要33S,如果有更为高效的数据读取方法,欢迎交流
import numpy as np
import os
import time
os.chdir("c:\\")
f = open("test_data.txt")
time1 = time.time()
for cnt,eachline in enumerate(f): #获取文件大小
pass
files = np.zeros((cnt+1,len(eachline.split())))#提前初始化矩阵
f.seek(0) #文件指针重置
for cnt,eachline in enumerate(f):
temp = np.array(eachline.split())
files[cnt,...] = temp #采用赋值的方法读取文件,速度更快
if cnt%1000 == 0:
print cnt
f.close()
time2 = time.time()
print "总共耗费时间:" + str(time2-time1) #读取20W行数据需要33S
2.文件、目录的BIF
*********************************************************
f.close() 关闭文件
f.read(size) 如果没有size变量,读取整个文件
f.readline() 读取一行数据
f.write(str) 将字符串写入文件中
f.seek(offset,from) 文件指针偏移量 from(0,起始位置 1,当前位置 2,文件末尾)offset 偏移量
f.tell() 返回当前文件指针的位置
os.getcwd() 返回当前工作目录
os.chdir() 更改工作目录
os.listdir() 返回当前目录下面的所有文件名
os.mkdir() 创建文件夹
os.rename() 对文件重命名
os.remove(path) 删除文件
3.保存复杂数据结构,泡菜
不管是保存还是读取,首先要打开文件:
写入:调用pickle.dump(当前对象,要保存的文件指针)
读取:调用pickle.load(打开的文件指针)
例子:
import pickle
#保存
my_list = [1,2,3,"xiaoran",[2,3,5]]
pickle_file = open("my_list.pkl","wb")
pickle.dump(my_list,pickle_file)
pickle_file.close()
#读取
pickle_file = open("my_list.pkl","rb")
my_list2 = pickle.load(pickle_file)
print(my_list2)
pickle_file.close()
注意:不管是写入还是读取都要用二进制的方式来打开,扩展名为:.pkl
文件系统
1.打开文件
f = open(file,'w') 打开文件,参数默认为读
‘r’ 读,默认模式
‘w’ 写,源文件存在则覆盖
‘a’ 写,源文件存在则在末尾继续写
‘x’ 如果文件存在则会引发异常
注:这些模式选项是可以同时使用的
之前读取数据速度很慢,主要是因为对python不熟悉,使用的是矩阵拼接的方法,现在重新写了一下读取数据代码:
读取效率比较高,读取20W行代码并且转化为矩阵需要33S,如果有更为高效的数据读取方法,欢迎交流
import numpy as np
import os
import time
os.chdir("c:\\")
f = open("test_data.txt")
time1 = time.time()
for cnt,eachline in enumerate(f): #获取文件大小
pass
files = np.zeros((cnt+1,len(eachline.split())))#提前初始化矩阵
f.seek(0) #文件指针重置
for cnt,eachline in enumerate(f):
temp = np.array(eachline.split())
files[cnt,...] = temp #采用赋值的方法读取文件,速度更快
if cnt%1000 == 0:
print cnt
f.close()
time2 = time.time()
print "总共耗费时间:" + str(time2-time1) #读取20W行数据需要33S
2.文件、目录的BIF
*********************************************************
f.close() 关闭文件
f.read(size) 如果没有size变量,读取整个文件
f.readline() 读取一行数据
f.write(str) 将字符串写入文件中
f.seek(offset,from) 文件指针偏移量 from(0,起始位置 1,当前位置 2,文件末尾)offset 偏移量
f.tell() 返回当前文件指针的位置
os.getcwd() 返回当前工作目录
os.chdir() 更改工作目录
os.listdir() 返回当前目录下面的所有文件名
os.mkdir() 创建文件夹
os.rename() 对文件重命名
os.remove(path) 删除文件
3.保存复杂数据结构,泡菜
不管是保存还是读取,首先要打开文件:
写入:调用pickle.dump(当前对象,要保存的文件指针)
读取:调用pickle.load(打开的文件指针)
例子:
import pickle
#保存
my_list = [1,2,3,"xiaoran",[2,3,5]]
pickle_file = open("my_list.pkl","wb")
pickle.dump(my_list,pickle_file)
pickle_file.close()
#读取
pickle_file = open("my_list.pkl","rb")
my_list2 = pickle.load(pickle_file)
print(my_list2)
pickle_file.close()
注意:不管是写入还是读取都要用二进制的方式来打开,扩展名为:.pkl
相关文章推荐
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- 零基础入门学习Python(30)--文件系统:介绍一个高大上的东西
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- python的文件系统---python入门学习(二)
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
- Python学习笔记(三):Time、函数、模块、文件I/O、异常处理(快速入门篇)
- 【极客学院】-python学习笔记-Python快速入门(面向对象-引入外部文件-Web2Py创建网站)
- python入门学习(1)——脚本(常用系统相关命令)
- 【python入门】学习字典的随笔,附使用字典做一个学生管理系统
- 【程序员技术练级】学习一门脚本语言 python(二)遍历本地文件系统
- Python 学习入门(12)—— 文件
- 机器人操作系统ROS Indigo 入门学习(3)——文件系统导航