马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 向西而笑 于 2017-8-9 15:58 编辑
open():打开文件要用到open()函数,在里面输入要打开文件的路径和模式就可以了。如果只输入文件名表示当前程序当前目录。模式默认是’rt’,如open(‘c:\\abc.txt’,’wt’)表示以写入方式和文本模式打开c盘下的abc.txt文件
文件的打开模式: 打开模式
| 执行操作
| ‘r’ | 以只读方式打开文件(默认)
| ‘w’ | 以写入方式代开文件,会覆盖已存在的文件
| ‘x’ | 如果文件已经存在,使用此模式打开将引发异常
| ‘a’ | 以写入模式打开,如果文件存在,则在末尾追加写入
| ‘b’ | 以二进制模式打开文件
| ‘t’ | 以文本模式打开(默认)
| ‘+’ | 可读写模式(可添加到其他模式中使用)
| ‘U’ | 通用换行符支持
| 文件对象方法 文件对象方法
| 执行操作
| f.close() | 关闭文件
| f.read([size = -1]) | 从文件读取size个字符,当未给定size或给定负值的时候,读取剩余所有字符,然后作为字符串返回
| f.readline([size = -1]) | 从文件读取并返回一行(包括行结束符),如果size有定义则返回size个字符
| f.write(str) | 将字符串str写入文件
| f.writelines(seq) | 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
| f.seek(offset,from) | 在文件中移动文件指针,从from(0代表文件起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节
| f.tell() | 返回当前指针在文件中的位置
| f.truncate([size= file.tell()]) | 截取文件到size个字节,默认截取到文件指针当前位置
| 模块基本概念:模块是包含所有定义的函数和变量的文件,它的后缀是.py。引入模块的语句是import,引入模块后就能使用模块的功能了。
OS模块:使用os模块可以使得同样的源代码不用修改即可跨平台使用。
os模块中关于文件/目录常用的函数使用方法 函数名
| 使用方法
| getcwd()
| 返回当前工作目录
| chdir(path)
| 改变工作目录
| listdir(path=’.’)
| 列举指定目录中的文件名(‘.’表示当前目录,’.’表示上一级目录)
| mkdir(path)
| 创建单层目录,如该目录已存在则抛出异常
| makedirs(path)
| 递归创建多层目录,如该目录已存在则抛出异常,注意:’E:\\a\\b和E:\\a\\c’并不会冲突’
| remove(path)
| 删除文件
| rmdir(path)
| 删除单层目录,如该目录非空则抛出异常
| removedirs(path)
| 递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
| rename(old,new)
| 将文件old重命名为new
| system(command)
| 运行系统的shell命令
| walk(top)
| 遍历top路径以下所有的子目录,返回一个三元组:(路径,[包含目录,[包含文件])
| 以下是支持路径操作中常用到的一些定义,支持所有平台
| os.curdir
| 指代当前目录
| os.pardir
| 指代上一级目录
| os.sep
| 输出操作系统特定的路径分隔符(Win下为’\\’,Linux下为’/’)
| os.linesep
| 当前平台使用的行终止符(Win下为’\r\n’,Linux下为’\n’)
| os.name
| 指代当前使用的操作系统(包括:’posix’,’nt’,’mac’,’os2’.’ce’,’jave’)
|
|
| os.path模块中关于路径常用的函数使用方法 函数名
| 使用方法
| basename(path)
| 去掉目录路径,单独返回文件名
| dirname(path)
| 去掉文件名,单独返回目录路径
| join(path1[,path2[,...]])
| 将path1,path各部分组合成一个路径名
| split(path)
| 分割文件名与路径,返回(f_path,f_name)元组3。如果王权使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在。
| splitext(path)
| 分离文件名与扩展名,返回(f_name,f_extension)元组
| getsize(file)
| 返回指定文件的尺寸,单位是字节
| getatiem(file)
| 返回指定文件最近的访问时间,可用time模块的gmtiem()或localtime()函数换算)
| getctime(file)
| 返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtiem()或localtime()函数换算)
| getmtime(file)
| 返回指定文件最新的修改时间,可用time模块的gmtiem()或localtime()函数换算)
| 以下函数返回True或False | exists(path)
| 判断指定路径(目录或文件)是否存在
| isabs(path)
| 判断指定路径是否为绝对路径
| isdir(path)
| 判断指定路径是否存在且是一个目录
| isfile(path)
| 判断指定路径是否存在且是一个文件
| islink(path)
| 判断指定路径是否存在且是一个符号链接
| ismount(path)
| 判断指定路径是否存在且是一个挂载点
| samefile(path1,path2)
| 判断path1和path2两个路径是否指向同一个文件
|
|
pickle模块 |
pickle模块
可以将各种复杂的文件以二进制形式打包保存起来。保存文件的后缀名是.pkl。无论是新建还是打开都要以’b’模式操作
dump()和load():前一个输入对象和文件将对象转换成二进制保存到文件中。load则是将二进制内容转换成相应的内容并返回其值。
>>>import pickle
>>>file = open('h:\\test.pkl','wb')
>>> a =[1,'哈哈',[2,3,1],('abc')]
>>>pickle.dump(a,file)
>>>file.close()
>>>pickle.load(open('h:\\test.pkl','rb'))
[1, '哈哈', [2, 3,1], 'abc']
|