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

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]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值