美文网首页
文件处理

文件处理

作者: 皮卡丘灵灵 | 来源:发表于2017-07-06 21:19 被阅读0次

    此文仅做学习用

    打开文件

    读取文件

    read([size]):如果文件长度超过size,那么只读取size长度的部分

    readlines([size])是读取完缓冲buffer的所有字节

    注意一个缓存:

     io.DEFAULT_BUFFER_SIZE

    8192

    还有一种方法是使用迭代器:

    他的截图是:

    那么迭代器有什么好处呢?

    首先是把文件传给迭代器,不是把文件导到内存中,而是没有用lens读取一行的时候他自动读取一行。所以使用迭代器可以在不消耗内存的同时遍历整个文件。后面就会知道把文件放在缓存中读取与放入迭代器读取的区别。

    写入文件

    对象可以是字符串,字符串组成的元组,字符串所组成的列表

    注意参数必须是字符串组成的序列!

    还有要注意,写入的时候,Linux本身有个写缓存的机制,如果不主动调用close()或者flush函数,他是不会写到磁盘文件上的。关闭的时候才会系统调用,才会写进去磁盘里


    注意第2点,同步到磁盘后,再写入的如果还没到写缓存的容量,那么内容还是会留在写缓存中。

    注意,文件的字节数在调用了close()函数后变大了,因为写缓存里的内容都传到了磁盘中。

    EOL出现的原因是引号没有成对出现,f.然后点tab会出现这个对象可以使用的方法

    注意啊,w只允许写入,r只允许读,那么以这些方式打开的话,你就不能读/写!

    w+,打开一个文件先写后读。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    r+,可读写文件。【可读;可写;可追加】

    注意若以追加方式打开文件,就会在文件结尾追加新的内容

    a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    注意若以追加方式打开文件,就会在文件结尾追加新的内容

    a,打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    要注意close之后就读不了了。

    那为什么需要二进制的方式呢,因为像读取图片这类信息,普通打开是打开文本,读不了信息,二进制打开就能读取图片的长宽。

    文件关闭

    然后他做了一个实验,证明了打开超过1024就会报错,所以打开了文件记得关闭。

    python的问题:

    然后把指针指回去

    那么如何使指针指到结尾呢

    如何使指针相对于当前位置移动呢

    错误情况(指针越界):

    文件属性:

    例子:

    f.encoding回车后没有值,证明是ASCLL码编码

    查看文件所有的属性:

    相关文章

      网友评论

          本文标题:文件处理

          本文链接:https://www.haomeiwen.com/subject/dlyhhxtx.html