python自学笔记(4)--Python文件对象、os模块及pickle
2017-12-04 15:28
555 查看
python自学笔记(4)--Python文件对象、os模块及pickle
seek方法说明如下:
seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。默认为0 在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。
文件系统功能(OS模块)
pickle对象的持久存贮(对象的流转化)
pickle(与JSON不同的是pickle不是用于多种语言间的数据传输,它仅作为python对象的持久化或者python程序间进行互相传输对象的方法,因此它支持了python所有的数据类型。)在编程时可以将一些大数据的字典通过pickle写入到文件中,这样可以减少代码文件的大小,使得程序更加的优雅。
Python内置函数open()用于打开和创建文件。Open函数有三个参数:文件名,打开模式(r只读,w写入,a附加,即从文件尾部附加,模式后面附加“+”表示同时支持输入和输出;模式后加“b”表示用二进制方式打开)和缓冲区参数(定义输出缓存,0表示无缓冲,1表示使用缓冲,负数表示操作系统默认缓冲大小)
p.s.若文件不存在,此时以读方式打开会报错,以写模式或附加模式打开会自动创建文件。使用next的迭代的方式不会移动文件指针,使用readline或readlines会移动文件指针。
''' test.txt原始文件为下面三行文字 he decided on roast chicken and vegetables, with apple pie to follow. 运行最后的结果是5行文字: he decided on roast chicken and vegetables, with apple pie to follow. write something. write one line. ''' f = open('test.txt','rt+') print(f.read(5))#he de读取5个字符 print(repr(f.readline()))#'cided on roast chicken and vegetables,\n'第一行的余下部分,包含最后的换行符 c = f.tell();print(c)#45 print(f.readlines())#['with\n', 'apple pie to follow.']游标在read时会向后移动 f.seek(c)#将游标移动到readlines之前 , 在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。 print(f.__next__())#'with\n' print(f.__next__())#'apple pie to follow.this is writing text.'next后直接调用tell会报错,原因是next函数找那个会置一个_telling标志位为false,而tell中会判断这个标志位。 print(f.readlines())#[] print(f.tell())#表明游标cursor位置为71 f.write('\n')#写操作同样会让cursor后移 print(f.tell())#表明游标cursor位置为73 f.write('write something.\n') f.writelines('write one line.') f.flush() f.close()
seek方法说明如下:
seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。默认为0 在文本文件中,没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。
f.truncate(f.tell())#截断文件从文件开始到文件指针所在位置。
f.softspace 为0时写入时不会自动加空格,为1时自动加空格
f.mode 读写模式
文件系统功能(OS模块)
import os path = os.getcwd()#获取当前工作路径 os.mkdir(path + '//'+ "ddd")#创建一个单级目录 os.chdir("D://")#相当于cd命令 os.listdir(path)#列出制定目录下的所有文件名 os.makedirs(path + '//' + 'hahahrroa'+ '//' + 'ee'+ '//' + 'ee')#创建多级的(含单级)目录 os.rmdir(path + '//'+ "ddd") #删除一个目录 os.removedirs(path + '//' + 'hahahrroa'+ '//' + 'ee'+ '//' + 'ee')#删除多级目录
文件: os.mkfifo()#创建管道 os.mknod()#创建设备文件 os.remove()#用来删除文件 os.unlink()用来删除文件 os.rename()重命名文件 os.stat()返回文件状态信息 os.symlink()创建一个文件链接 os.utime()更新时间戳 os.tmpfile()创建并打开一个新的临时文件 os.walk()遍历目录下的文件目录 访问权限: os.access()判定某一用户对指定目录是否有权限 os.chmod()修改目录或文件的权限 os.chmod(path, 0o0777) os.chown() os.umask()设置默认权限模式 文件: open() read() write() 设备文件: mkdev()创建设备 major()从指定设备的 minor() os.path: 跟文件路径相关 basename():路径基名 dirname():路径目录名 join():将多个离散的基名和路径名连接起来 split():返回dirname和basename的元组 信息: getatime(): getctime(): getmtime(): getsize():返回文件大小 查询: exists():判断指定文件是否存在 isabs():判断指定的路径是否为绝对路径 isfile():是否为文件 isdir():是否为路径 islink():是否符号链接 ismount():是否为挂载点 samefile():两个路径是否指向同一个文件
pickle对象的持久存贮(对象的流转化)
pickle(与JSON不同的是pickle不是用于多种语言间的数据传输,它仅作为python对象的持久化或者python程序间进行互相传输对象的方法,因此它支持了python所有的数据类型。)在编程时可以将一些大数据的字典通过pickle写入到文件中,这样可以减少代码文件的大小,使得程序更加的优雅。
import os import pickle d1 = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}; path = os.getcwd(); f1 = open(path + '//' + 'text.txt', 'wb+')#此处必须是wb,否则会报错,pickle默认是以二进制来进行读取的 pickle.dump(d1, f1)#讲字典数据写入到text.txt中,将字典数据倒入泡菜缸中 f1.flush() f1.close() f6 = open(path + '//' + 'text.txt', 'rb')#此处必须有rb,否则报错 d2 = pickle.load(f6)# 从text.txt中读取数据到字典中 print(d2)#{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}
相关文章推荐
- Python入门(六)——self,类,方法,__init__,类对象,类变量,文件操作,判断回文,pickle模块用法
- 数据处理_文件读取_PythonPickle模块(笔记)
- Python笔记-os模块,操作系统的目录和文件操作
- Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
- Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
- python学习笔记十 类文件对象
- Python学习笔记——文件对象和操作(1)
- Python模块整理(一):文件系统相关模块os
- #小练习 pickle模块 _ 一起存储python对象
- Python 学习笔记 (7)—— OS模块
- Python OS 文件操作模块常用函数
- Python OS模块目录文件处理
- Python学习笔记---模块;文件与文本处理
- python文件读写,python文件os模块
- #小练习 pickle模块_分别存储python对象 分类: python Module 2013-09-05 18:07 379人阅读 评论(0) 收藏
- python os模块,平常操作文件方便,执行cmd命令
- Python模块学习 -- pickle, cPickle 对象序列化/反序列化
- #小练习 pickle模块_分别存储python对象
- Python模块学习 ---- pickle, cPickle 对象序列化/反序列化
- #小练习 pickle模块 _ 一起存储python对象 分类: python Module 2013-09-05 18:11 399人阅读 评论(0) 收藏