zoukankan      html  css  js  c++  java
  • 2 [文件]-文件操作

    1.文件操作

      def fileno(self, *args, **kwargs): # real signature unknown
            返回文件句柄在内核中的索引值,以后做IO多路复用时可以用到
    
        def flush(self, *args, **kwargs): # real signature unknown
            把文件从内存buffer里强制刷新到硬盘
    
        def readable(self, *args, **kwargs): # real signature unknown
            判断是否可读
    
        def readline(self, *args, **kwargs): # real signature unknown
            只读一行,遇到
     or 
    为止
    
        def seek(self, *args, **kwargs): # real signature unknown
            把操作文件的光标移到指定位置
            *注意seek的长度是按字节算的, 字符编码存每个字符所占的字节长度不一样。
            如“路飞学城” 用gbk存是2个字节一个字,用utf-8就是3个字节,因此以gbk打开时,seek(4) 就把光标切换到了“飞”和“学”两个字中间。
            但如果是utf8,seek(4)会导致,拿到了飞这个字的一部分字节,打印的话会报错,因为处理剩下的文本时发现用utf8处理不了了,因为编码对不上了。少了一个字节
    
        def seekable(self, *args, **kwargs): # real signature unknown
            判断文件是否可进行seek操作
    
        def tell(self, *args, **kwargs): # real signature unknown
            返回当前文件操作光标位置 
    
        def truncate(self, *args, **kwargs): # real signature unknown
            按指定长度截断文件
            *指定长度的话,就从文件开头开始截断指定长度,不指定长度的话,就从当前位置到文件尾部的内容全去掉。
    
        def writable(self, *args, **kwargs): # real signature unknown
            判断文件是否可写

       

    2.flush:内存刷新到硬盘

     3.readline:读取一行

    4.文件光标:tell  seek read(1)

     

      (1)read:字符读取

      

      

       (2)seek tell  字节读取

    >>> f = open('file_1.bak','r+')
    >>> f.tell()
    0
    >>> f.read(1)    #读取一个字符
    ''
    >>> f.tell()        #光标移动2个字节
    2
    >>> f.seek(0)
    0
    >>> f.read(1)
    ''
    >>> f.read(1)
    ''
    >>> f.tell()
    4
    >>> f.seek(3)    #光标移动到第3个字节
    3
    >>> f.tell()
    3
    >>> f.read(1)   #gbk  一个字符占2个字节  #读取失败
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xb5 in position 4: illegal multibyte sequence

     5.截断:truncate(3) 剩下3个字节长度

     

    >>> f = open('file_1.bak','r+')
    >>> f.truncate(3)                   # 剩下3个字节长度
    3

       

  • 相关阅读:
    POJ 1469 COURSES 二分图最大匹配
    POJ 1325 Machine Schedule 二分图最大匹配
    USACO Humble Numbers DP?
    SGU 194 Reactor Cooling 带容量上下限制的网络流
    POJ 3084 Panic Room 求最小割
    ZOJ 2587 Unique Attack 判断最小割是否唯一
    Poj 1815 Friendship 枚举+求最小割
    POJ 3308 Paratroopers 最小点权覆盖 求最小割
    1227. Rally Championship
    Etaoin Shrdlu
  • 原文地址:https://www.cnblogs.com/venicid/p/8404931.html
Copyright © 2011-2022 走看看