zoukankan      html  css  js  c++  java
  • day①:文件操作

    #模式

    # 模式:
    读 'r'
    写[清空整个文件] 'w'
    追加[文件需要存在] 'a'
    读写 'r+'
    二进制文件 'b' 'rb','wb','rb+'

    #文件对象方法

    file.close() # 关闭文件
    file.fileno() # 返回文件的描述符
    file.flush() # 刷新文件的内部缓冲区
    file.isatty() # 判断file是否是一个类tty设备
    file.next() # 返回文件的下一行,或在没有其他行时引发StopIteration异常
    file.read(size=-1) # 从文件读取size个字节,当未给定size或给定负值的时候,读取剩余的所有字节,然后作为字符串返回
    file.readline(size=-1) # 从文件中读取并返回一行(包括行结束符),或返回最大size个字符
    file.readlines(sizhint=0) # 读取文件的所有行作为一个列表返回
    file.xreadlines() # 用于迭代,可替换readlines()的一个更高效的方法
    file.seek(off, whence=0) # 在文件中移动文件指针,从whence(0代表文件起始,1代表当前位置,2代表文件末尾)偏移off字节
    file.tell() # 返回当前在文件中的位置
    file.truncate(size=file.tell()) # 截取文件到最大size字节,默认为当前文件位置
    file.write(str) # 向文件写入字符串
    file.writelines(seq) # 向文件写入字符串序列seq;seq应该是一个返回字符串的可迭代对象

    读文件

    open()和file(),别名关系,随你喜欢用哪个,但是py3已经没有file()了!

    read(),一次性读取文件的全部内容,可以指定read(size),每次最多读取size字节的内容

    readline(),每次读取一行内容

    readlines(),一次读取所有内容并按行返回列表

    >>> f = open('/python/test.txt','r')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    IOError: [Errno 2] No such file or directory:  '/python/test.txt'  #不存在会报错
    >>> f = open('/shell/test.txt','r')   
    >>> f.read()
    'nimeide !!!!!!!!
    '
    >>> f.close()
    >>> with open('/shell/test.txt','r') as f: #自动帮你close()
    ...      print f.read()
    ... 
    nimeide !!!!!!!!
                                 ^
    >>> f=file('/shell/test.txt','r')
    >>> for line in f.readlines():   
    ...     print (line.strip())     
    ... 
    nimeide !!!!!!!!

    写文件:

    write

    writelines,参数需为一个列表,将一个列表的每个元素都写入文件

    >>> f=file('/shell/mytest.txt','w')
    >>> f.write('This is first line
    ')
    >>> f.write('second line
    ')
    >>> f.close()

    追加:

    >>> f =file("/shell/mytest.txt","a")
    >>> f.write("thrid line")
    >>> f.close()

    [root@monitor shell]# cat mytest.txt
    This is first line
    second line
    thrid line[root@monitor shell]#

    修改内容:

    原文件:/shell/mytest.txt

    [root@monitor shell]# cat mytest.txt
    This is first line
    second line
    thrid line
    fouth line
    fifth line
    nimeide line

    >>> new_f = file('/shell/mynew_file_update.txt','w')
    >>> f = file('/shell/mytest.txt','r') 
    >>> for line in f:
    ...     if 'fifth' in line:
    ...         line=line.replace(line,'--my test fifth---
    ')
    ...     new_f.write(line)
    ... 
    >>> f.close()
    >>> new_f.close()

    修改后:

    [root@monitor shell]# cat mynew_file_update.txt
    This is first line
    second line
    thrid line
    fouth line
    --my test fifth---
    nimeide line

    最后:

    >>> import os
    >>> os.rename('/shell/mynew_file_update.txt','/shell/mytest.txt')

    [root@monitor shell]# cat mytest.txt
    This is first line
    second line
    thrid line
    fouth line
    --my test fifth---
    nimeide line

  • 相关阅读:
    jQuery插件开发入门
    [转]JS学习总结-技巧、方法、细节
    JS无法获取display为none的隐藏元素的宽度和高度的解决方案
    vuejs2.0运用原生js实现简单的拖拽元素功能
    HTML5效果:Canvas 实现圆形进度条并显示数字百分比
    git常用命令总结以及用github来展示你的前端页面
    jQuery 对AMD的支持(Require.js中如何使用jQuery)
    vue+springboot上传和下载附件功能
    springboot+vue实现文件上传
    Spring boot+Vue全栈开发---Spring Boot文件上传
  • 原文地址:https://www.cnblogs.com/binhy0428/p/5086629.html
Copyright © 2011-2022 走看看