Python学习笔记_文件系统

来源:互联网 发布:怎样找淘宝内部优惠券 编辑:程序博客网 时间:2024/06/06 05:32

1、打开文件,获取文件对象


图中,只有B会报错,windows路径中可以接受斜线(/)和反斜线(\),不过在使用反斜线时要用双反斜线进行转义(\\),否则Python会进行转义,如\n。

这个地方最好结合with as 使用。

open函数返回一个文件对象,默认的参数是‘rt’,即以只读的方式打开文本。

参数有 r w a x,以w打开,若当前目录有文件则会被覆盖,最好使用x(若存在会抛出异常)或a(在文件末尾打开),后面若有参数b,则是以二进制打开。

2、文件对象的内置方法

f.read(size)

当size参数为空时,默认读完,指定size后会读到指定位置。其实这里涉及到编码的问题,汉字在不同的编码方式下占2-4个字节,按理说当size取到一个汉字中间的字节位置时是不是应该会有异常?可啥也木有,正常读出来了,什么原因还没搞懂,后面遇到了再填坑。

python3.5.2 windows7


f.tell(),返回此时的文件指针的位置。


f.seek(offset,from(0,1,2))

移动文件指针,0代表文件初,1代表当前位置,2代表末尾,从(0,1,2)移动offset个位置。


f.readline(),读取一行。


f.close(),关闭文件,最好读写完及时关闭,及时存储。


f.write(),写入内容,只能写入str。


f.writelines(),写入字符串序列,注意也是str,若序列中有非str,则异常。


str.splite(a:b:c),额外记录一下这个函数,分割a到b,分割次数为c,返回分割后的字符串序列。


os,os.path 的使用


3、pickle二进制使用

在上面提到了,write()和writelines()方法只能写入字符串或者字符串序列,自然很不方便。这里pickle可以先将要写入的内容一股脑的转换成二进制扔进文件,然后读出来恢复原样,简直强无敌。

import pickle

pickle.dump(内容,文件对象)

pickle.load(文件对象)

使用时注意open皆需要使用b参数。


4、未解决的问题

与之前的汉字编码相同,不懂unicode,utf-8,gbk相关联的知识,只知道需要使用unicode中转,可试了一下搜到的方法感觉都不得行,之后遇到实际的问题来填坑。


原创粉丝点击