从实用角度出发,根据数据挖掘中最长使用的语法和数据类型出发,对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

python的文件系统---python入门学习(二)相关推荐

  1. hadoop hive hbase 入门学习 (二)

    hadoop 自学系列                hadoop hive hbase 入门学习 (一) hadoop安装.hdfs学习及mapreduce学习 hadoop 软件下载 (hadoo ...

  2. JBox2d入门学习二 -----我的小鸟

    入门学习一当中我学会了如何定义并且创建一个世界,在世界当中定义并且创建一个刚体,并尝试给刚体一个力.最近比较忙..现在抽空实现了一个类似于愤怒小鸟的例子,先看看图吧.   贴代码,注解写的比较详细了, ...

  3. OpenGL入门学习[二] 绘制简单的几何图形

    OpenGL入门学习[二] 本次课程所要讲的是绘制简单的几何图形,在实际绘制之前,让我们先熟悉一些概念. 一.点.直线和多边形 我们知道数学(具体的说,是几何学)中有点.直线和多边形的概念,但这些概念 ...

  4. 零基础自学python教程-零基础入门学习Python_Python教程

    教程名称:零基础入门学习Python 课程目录: [易源码www.pnp8.com]000愉快的开始 [易源码www.pnp8.com]001我和Python的第一次亲密接触 [易源码www.pnp8 ...

  5. Python爬虫9大入门学习知识点

    1.掌握Python编程能基础 想要学习爬虫,首先要充分掌握Python编程技术相关的基础知识.爬虫其实就是遵循一定的规则获取数据的过程,所以在学习Python知识的过程中一定要重点学习其中的数据类型 ...

  6. Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图

    一步一步来吧 上一节:Python+Opencv图像处理新手入门教程(一):介绍,安装与起步 1.什么是图像 对于计算机而言,图像的本质是一个由像素点构成的矩阵. 例如我们用肉眼很容易分辨一辆汽车的后 ...

  7. 学python有前途吗-入门学习Python编程有前途吗?

    原标题:入门学习Python编程有前途吗? 入门学习Python编程有前途吗?要想有前途,我想给初学编程者这几个建议: ​ 1.首先要有信心.虽然可能你看了几个小时也没在屏幕上打出一个三角形,或者压根 ...

  8. python修图和ps_Photoshop入门学习之自从会了Python之后,我就没用过PS了

    本文主要向大家介绍了Photoshop入门学习之自从会了Python之后,我就没用过PS了,通过具体的内容向大家展现,希望对大家Photoshop入门学习有所帮助. 第1步:减少图像色彩 因为双边滤波 ...

  9. python代码测试_Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

最新文章

  1. Docker学习(七)-----Docker安装nginx
  2. 怎么用爬虫筛选简历_Python爬虫面试简历
  3. SpringMVC框架的详细操作步骤和注解的用法
  4. 剖析数据库中重要而又常被曲解的概念
  5. iOS开源库PKRevealController的使用
  6. 秋凉了,大家别加班了,早回吧:)
  7. linux中文件大小的分配,Linux创造固定的文件大小-预分配磁盘空间
  8. 对linux课程的体会和看法,我的linux体会和看法
  9. 根据列表内车牌号,统计各省市车牌占有量
  10. 任玉刚【Android开发艺术探索】读后笔记三
  11. 立体栅格地图_三维栅格地图构建之三:点集到栅格的投射
  12. java中实现热门搜索的逻辑_Java编程的逻辑 (45) - 神奇的堆
  13. 文献管理软件//Zotero的常用插件——Sci-hub/shortdoi批量下载、Zotfile重命名PDF文件及ZoteroQuickLook快速预览(二)
  14. docker使用-p参数映射端口失败
  15. pandas读取csv文件UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xca in position 37: invalid contin
  16. 畜牧业的产业升级技术
  17. 安卓java代码ping网关_Android代码中使用Ping命令
  18. 知识图谱综述及技术地图概览(智能问答系统)
  19. 力天创见人脸识别客流统计方案
  20. MouseManager

热门文章

  1. 博为小帮软件机器人已实现全国中小学学籍卡片自动下载
  2. 工业物联网竟如此简单?
  3. html5的修改滚动条滑块样式,前端项目修改默认滚动条样式
  4. 计算机网络(五层协议)
  5. 23个java大数据处理框架
  6. error: 'lianxi/' does not have a commit checked out fatal: adding files failed 解决方案
  7. linux的网页口令相关,RedHat Linux常见有关问题集锦(一)
  8. 数据分析 之 三大思路
  9. DropBox Datastore API 翻译
  10. [全网首发]新东方智慧学习机N1刷入类原生