zoukankan      html  css  js  c++  java
  • 文件读写

    一 不同方式打开文件

    1、读取文本文件可用:file=open(“文件路径和文件名”,“r”);打开文件之后,直接用read()方法读取数据:a.read();读完之后要关闭文件:a.close()

    2、读取二进制文件:file=open(“文件路径和文件名”,“rb”),a.read(),a.close()

    3、写入文本文件:file=open(“文件路径和文件名”,“w”),a.write(“12345”),a.close()

    4、写入二进制文件:file=open(“文件路径和文件名”,“wb”),a.write(“12323”),a.close()

    5、读取文件不支持UTF-8编码时,可进行转码:file = open("文件路径和文件名", "r",encode="gbk")

     

    二 获取文件对象的属性

    属性描述
    file.closed 返回true如果文件已被关闭,否则返回false。
    file.mode 返回被打开文件的访问模式。
    file.name 返回文件的名称。
    file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

    如下实例:

    三 写入/读取文件的内容

    写入:

    file.write():写入数据到文件file中

    读取:

    file.read():表示一次读取文件的所有内容

    file.readline():表示一次读取一行数据

    file.readlines():表示一次读取全部内容,并按行返回list

    四 关闭文件

      file.close():关闭打开的file文件

    五 文件定位

    tell():告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。

    seek(offset [,from]):改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

    如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

    如下列子:

     

    六 文件重命名/删除

    Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。要使用这个模块,你必须先导入它,然后才可以调用相关的各种功能。

    rename():方法需要两个参数,当前的文件名和新文件名,os.rename(current_file_name, new_file_name)

    remove():提供一个参数,当前要删除文件的文件名,os.remove(file_name)

    其他os的函数可参考另外一篇

    注意:try....finally的使用和with.....as的使用

    (1)with open('/path/to/file', 'r') as f: 
    f.write('Hello, world!')
    (2)try:
        f = open('/path/to/file', 'r')
        print(f.read())
    finally:
        if f:
            f.close()
    (2)(1)是相同的意思,一般使用文件读写最好使用with ....as语句


    问1:到了这里就很好奇,文件open()后,为什么都要close()?
    答:每次打开一个文件,都会占用磁盘的资源,
    close()是为了释放资源。
    如果不close(),那就要等到垃圾回收时,自动释放资源。垃圾回收的时机是不确定的,也无法控制的。
    如果程序是一个命令,很快就执行完了,那么可能影响不大(注意:并不是说就保证没问题)。
    但如果程序是一个服务,或是需要很长时间才能执行完,或者很大并发执行,就可能导致资源被耗尽,也有可能导致死锁
     
  • 相关阅读:
    Oracle PLSQL Demo
    Oracle PLSQL Demo
    Oracle PLSQL Demo
    Oracle PLSQL Demo
    Apache Commons Lang的StringUtils.isEmpty(STR)和StringUtils.isBlank(STR)
    随记MySQL的时间差函数(TIMESTAMPDIFF、DATEDIFF)、日期转换计算函数(date_add、day、date_format、str_to_date)
    jquery,checkbox无法用attr()二次勾选
    随笔记:如何使用Python连接(/操作)Oracle数据库(Windows平台下)
    MySQL获取随机数
    Python的模块调用
  • 原文地址:https://www.cnblogs.com/cxx1/p/7099408.html
Copyright © 2011-2022 走看看