Python(五)–模块与文件操作

模块和包

模块

模块是包含Python定义和语句的文件,把一组相关函数或代码组织到一个文件中,一个文件即一个模块.模块的文件名 = 模块名+后缀.py 模块之间代码共享,可以相互调用,实现代码重用.

模块的导入

import 模块名 #导入一个模块

import 模块名1[,模块名2][,模块名3] #导入多个模块

模块和变量一样也有作用域的区别,如果在模块的顶层导入,则作用域是全局的;如果在函数中导入,则作用域是局部的.一个模块只能被加载一次,无论它被导入多少次,这样可以阻止多重导入时,代码被多次执行.在实际编码时,推荐直接在顶层导入.  导入的模块也分几种,有Python的标准库模块,第三方模块和应用程序自定义的模块.如果是第一次导入,模块将被加载并执行,加载执行时在搜索路径中找到指定的模块,之后再调用时就不需要再次加载了.

示例:

import sys

print sys.platform

当引用模块里面的函数时,就要使用”模块名.函数名”引用.  如果不使用模块名,而直接用函数名进行调用,就需要在导入时指定需要使用的模块的属性.

from 模块名 import 属性名

from 模块名 import (属性名1)[,属性名2][,属性名3]...

还可以使用as关键字为模块属性重新命名.

import 模块名 as 模块新名称

from 模块名 import 属性名 as 属性新名称

当程序中的模块非常多时,可以把模块再进行划分,组织成包.包实际上就是一个目录,但必须包含一个__init__.py文件.__init__文件可以是一个空文件,表示当i安目录是一个包.包可以嵌套使用,包中还可以包含其他子包.

包的使用  导入包中的模块只需要在模块名前加上包的名称即可.__init__.py  前面使用的是空__init__.py文件,也可以在里面添加代码,她的作用实际上是初始化包中的公共变量.在第一次使用import导入包中热河部分后,包中的__init__.py文件中的代码就会执行.

常用的模块

模块名称说明copy复制keyword记录关键字random获得随机数sys空盒子shell程序time得到时间

- random模块

方法操作random()生成一个随机浮点数(0.0~1.0)uniform([上限],[下限])在设定的范围内产生一个浮点数randint([上限],[下限])随机生成设定范围内的一个整数choice(序列)从该序列中选取一个随机的元素返回shuffle(序列)随机打乱一个序列中元素的顺序sample(序列,长度)从指定的序列中随机截取指定长度的片段,序列本身不作修改

示例:

import random

print random.uniform(1, 5)

print random.randint(0, 1)

list1 = ['a','b','c']

print random.choice(list1)

random.shuffle(list1)

print list1

sys模块

属性/方法操作path获取模块的搜索路径,初始化时使用PYTHONPATH环境变量的值platform获取操作系统平台的名称version获取解释器的版本信息maxint最大的int值maxunicode最大的Unicode值stdin读取信息到Shell程序中stdout向Sshell程序输出信息Exit()退出Shell程序

- time模块  各种操作时间的方法.

属性/方法操作time()获取localtime()获取当前时间的元组形式ctime()获取当前时间的字符串形式asctime(t)将时间转换成字符串,参数t时元组形式的时间sleep(secs)按指定的时间推迟运行,参数是推迟的时间,单位是秒

文件和目录的操作

文件操作

文件的打开和关闭操作  使用open()函数打开文件.  open(filePath,access_mode[,buffering])  access_mode为文件打开模式(默认为r)

模式操作说明r读取文件必须存在w写入如果文件存在,会先清空其中数据,在重新创建a追加如果文件不存在,现自动创建文件.所有写入的数据都将追加到文件的末尾b二进制文件不能作为第一字符出现,打开音视频等二进制文件时,用到b模式

注意:打开之后记得close();

向文件中写数据

file = open("C:/Users/Administrator/Desktop/test.txt",'w')

file.write("Veng")

file.close()

从文件中读取数据

file = open("C:/Users/Administrator/Desktop/test.txt","r")

print file.read(3) #读取多少个字符

file.readline() #读取一行

file.close()

补充:还有其他读写模式(r+,w+,a+);r+表示不清除源文件内容,读写方式打开,而新添的数据在文件尾部;w+表示清除源文件内容,读写方式打开,读不到源文件内容;a+表示吧文件指针移到文件末尾,在文件末尾可以继续些数据,度数据不受影响.  从python2.2开始引进了迭代器和文件迭代.

for line in file:

print line

文件的指针  前面讲到的文件操作时按顺序进行读取的,在Python中实际上是用贺子珍实现的,指针时指向文件中数据的位置.Python提供了移动指针的方法file.seek(offset,whence = 0),相对于whence位置的偏移offset.常用的文件对象的操作方法

方法操作open()创建并打开文件file.close()关闭文件file.fileo()返回文件的描述符file.read(size = -1)从文件读取size个字节,当size<0时,读取剩余的所有字节,作为字符串返回file.readline(sizhint=0)从文件中读取并返回一行(包括行结束符),或返回最大的size个字符file.readlines(sizhint=0)读取文件的所有行并作为一个列表返回(包括所有行结束符).如果给定的sizhint且大于0,将返回总和大约为sizhint字节的行file.seek(off,whence = 0)相对于whence位置的偏移offset.0代表文件的开始,1代表当前位置,2代表文件末尾file.write(str)向文件写入字符串file.writeline(seq)向文件写入字符串序列seq

目录操作

目录操作可以使用Python的OS模块.  - 获取当前路径–getcwd()

import os

print os.getcwd() #获取当前路径

获取目录下所有文件的目录列表

print os.listdir(os.getcwd())

创建新的目录

os.mkdir("python") #默认目录创建在当前目录下.

删除目录

os.rmdir("python") #删除目录

判断目录是否存在

print os.path.isdir("python")

判断是否时是文件

print os.path.isfile("python")

walk(path)可以遍历目录中的所有文件和目录中的内容,返回一个可迭代的生成器.

o = os.walk("C:/Users/Administrator/Desktop/")

print [f for f in o]

python文件操作和模块_Python(五)--模块与文件操作相关推荐

  1. python 记录日志到日志服务器_Python日志模块的使用与思考:服务器程序将每日日志写入每日日志文件,logging,及,把,每天,到,当天,中...

    需求: 一个Python服务器程序,可能会连续运行几个月,现在需要把每天产生的log信息写入到当天的文件中,即每天产生一个log文件. 使用logging模块编写程序,第一个版本如下: import ...

  2. python有哪几种模块_python常用模块有哪些?

    本文和大家分享的主要是python中常用几大模块相关内容,一起来看看吧,希望对大家学习python有所帮助. 一.时间模块(time) 在学习模块之前我们所接触的时间模块 import time ti ...

  3. python如何自定义模块_python自定义模块和开源模块使用方法

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  4. python shelve模块_python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  5. python常用运维模块_python常用模块之一

    sys模块: sys模块是提供关于python本身的详细内在的信息的模块. sys.executable变量,它包含python解释器的路径 sys.platform变量,告诉我们现在处于什么操作系统 ...

  6. python counter模块_python collections模块 计数器(counter)

    一.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 把我写入的元素出现的多少次都计算出来 import collectio ...

  7. python path模块_python pathlib模块详解

    借鉴于 pathlib 官方文档 用于自己学习和记录 使用 pathlib 模块基本可以代替 os.path 来处理路径.它采用了完全面向对象的编程方式. 其包含六个类,图片如下: 但是大体有两类: ...

  8. python中的模块_python的模块和包的详细说明

    Python模块和包的详细说明 模块的导入 模块的加载与修改 模块和脚本的说明 模块搜索路径 包的导入 一.模块的导入 之前我们简单的使用了一下模块,并没有详细的介绍,现在我们来详细的说说 1.什么是 ...

  9. python manager模块_Python 并发模块

    Python 并发模块 multiprocessing 介绍 multiprocessing 是一个用与 threading 模块相似API的支持产生进程的包. multiprocessing 包同时 ...

最新文章

  1. File.documentsDirectory抛出异常Error #2014问题解决方案
  2. 基于图文界面的蓝牙扫描工具btscanner
  3. 命令注入工具Commix
  4. cannot import name ‘izip‘ from ‘itertools‘
  5. 西南民大oj(矩阵快速幂)
  6. bzoj 1710: [Usaco2007 Open]Cheappal 廉价回文【区间dp】
  7. 高级GIS-0.整体裁剪
  8. 【语音分离】基于matlab FastICA语音信号采集+混合+分离【含Matlab源码 008期】
  9. 基于matlab的谐波处理及无功功率补偿源码,谐波抑制和无功功率补偿(第3版) pdf epub mobi txt 下载...
  10. linux vi命令
  11. python计算机二级刷题软件(未来教育) 第十五套
  12. Qsys中的EPCS使用技巧
  13. Mybatis事务失效的几种情况
  14. 人生杂感随笔-观佛教与道教(六道轮回)
  15. ESP8266+blinker点灯(小爱+天猫+小度三合一)
  16. Unity的Socket网络编程
  17. 基于YOLOV3的安全帽检测
  18. JVM的Metaspace,JAVA8以前是Permanent Area
  19. 文献阅读---玉米干旱响应和耐受性基因表达的调控变异定位
  20. Java虚拟机规范 Java SE 8版 - class文件格式(二)

热门文章

  1. 参考文献代码--学位论文做参考文献
  2. 3D打印机DIY之二------3D打印机电路部分改装与连接
  3. Leetcode算法Java全解答--75. 颜色分类
  4. java爬取网页数据_利用Python做数据分析—对前程无忧数据类岗位进行分析
  5. Vue项目开发-仿蘑菇街电商APP
  6. 连接mysql服务验证失败_数据库连接失败的原因分析及解决办法
  7. 怎样使用PDF编辑器从TXT文档新建PDF文档
  8. Alamofire初探
  9. svr代码matlab,matlab解决svr代码.docx
  10. linux显示全部字符集,linux 字符集 页面显示乱码