鱼C论坛

 找回密码
 立即注册
查看: 1514|回复: 0

[技术交流] 章节七:永久储存

[复制链接]
发表于 2017-8-8 21:36:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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)
  
  向文件写入字符串序列seqseq应该是一个返回字符串的可迭代对象
  
  
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\\bE:\\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[,...]])
  
  path1path各部分组合成一个路径名
  
  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()函数换算)
  
  
以下函数返回TrueFalse
  
  exists(path)
  
  判断指定路径(目录或文件)是否存在
  
  isabs(path)
  
  判断指定路径是否为绝对路径
  
  isdir(path)
  
  判断指定路径是否存在且是一个目录
  
  isfile(path)
  
  判断指定路径是否存在且是一个文件
  
  islink(path)
  
  判断指定路径是否存在且是一个符号链接
  
  ismount(path)
  
  判断指定路径是否存在且是一个挂载点
  
  samefile(path1,path2)
  
  判断path1path2两个路径是否指向同一个文件
  
  
  
  
  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']





评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 10:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表