zoukankan      html  css  js  c++  java
  • python基础---7day(文本文件操作)

    基本文件操作

      1、创建和打开文件

      在python中,想要操作文件需要先创建或者打开指定的文件并创建文件对象。这可以通过内置的open()函数实现。open()函数的基本语法格式如下: 

    file = open(filename[,mode][,buffering])

      参数说明:

      file:被创建的文件对象

      filename:要创建或打开文件的名称,需要用单引号或双引号括起来。如果要打开的文件和当前文件在同一个目录下,那么直接写文件名即可,否则需要指定完整路径。

      mode:可选参数,用于指定文件的打开模式,默认的打开模式为只读(即r)。

      

     

       buffering:可选参数,用于指定读取文件的缓冲模式,值为0表示表达式不缓存:值为1表示表达式缓存;如果大于1,则表示缓冲区的大小。默认为缓存模式。

      2、关闭文件:

      打开文件后,需要及时关闭,以免对文件造成不必要的破坏。关闭文件可以使用文件对象的close()方法实现。close()方法的语法格式如下:

    file.close()

      3、打开文件时使用with语句

      with语句可以保证执行完毕后可以及时关闭已经打开的文件。语法格式:

    with expression as target:
        with-body

      参数说明:

      expression:用于指定一个表达式,这里可以是打开文件的open()函数

      target:用于指定一个变量,并且将expression的结果保存到该变量中。

      with-body:用于指定with语句体,其中可以是执行with语句后相关的一些操作语句。如果不想执行语句,直接使用pass语句代替。

       4、写入文件内容

      语法格式:file.write(string)

      在调用write()方法向文件中写入内容的前提是,打开文件时,指定的打开模式为w或a

      5、读取文件

      语法格式:file.read([size]),size为选参数,用于指定要读取的字符个数,如果省略则一次性读取所有内容

      在调用read()方法读取文件内容的前提是,打开文件时,指定的打开模式为r或r+

      

       使用read(size)方法读取文件时,是从文件的开头读取的。如果想要读取部分内容,可以先使用文件对象的seek()方法将文件的指针移动到新的位置,然后在应用read(size)方法读取。seek()方法的基本语法格式如下:

    file.seek(offset[,whence])

      参数说明;

      file:表示已经打开的文件对象

      offset:用于指定移动的字符个数,其具体位置与whence有关。

      whencn:用于指定从什么位置开始计算。值为0表示从文件开头开始计算,值为1表达从当前位置开始计算,值为2表示从文件末尾开始计算,默认为0.

       6、读取一行

      使用read()方法读取文件时,如果文件很大,一次读取全部内容到内存中,容易造成内存不足,所以通常会采用逐行读取。文件对象提供readline()方法用于每次读取一行数据。readline()方法的基本语法格式如下:

      file.readline()

       目录也称为文件夹,用于分层保存文件。通过目录可以分门别类的存放文件。我们也可以通过目录快速找到想要的文件。在python中,并没有提供直接操作目录的函数或者对象,而是需要使用内置的os和os.path模块实现。

      常用的目录操作主要有判断目录是否存在,创建目录。删除目录和遍历目录等。

      1、os和os.path模块

     

     

     路径

      1、相对路径

    import os    
    print(os.getcwd())   # 输出当前目录

      2、绝对路径

      在python中,可以通过os.path模块提供abspath()函数获取一个文件的绝对路径。abspath()函数的基本语法格式如下:

    import os
    os.path.abspath(path)

      指定文件路径时,也可以在表示路径的字符串前面加上字幕r(或R),那么该字符串将原样输出,这时路径中的分隔符就不需要在转义了。例如

       3、拼接路径

      如果想要将两个或者多个路径拼接到一起组成一个新的路径,可以使用os.path模块提供的join()函数实现。join()函数基本语法格式如下:

    os.path.join(path1,[,path2[,......]])

      例如:需要将“E:programPythonCode”和“demomessage.txt”路径拼接到一起,可以使用下面的代码:

     判断目录是否存在

      在python中,有时需要判断给定的目录是否存在,这时可以使用os.path模块提供的exists()函数实现。exists()函数的基本语法格式如下:

    os.path.exists(path)

      其中,path为要判断的目录,可是采用绝对路径,也可以采用相对路径。

      返回值:如果给定的路径存在,返回True,否则返回False。

    创建目录

      在python中,os模块提供了两个创建目录的函数,一个用于创建一级目录;另一个用于创建多级目录。下面分别进行介绍。

      1、创建一级目录

      创建一级目录是指一次只能创建一级目录。在python中,可以使用os模块提供的mkdir()函数实现,通过该函数只能创建指定路径中的最后一级目录,如果该目录的上一级不存在,则抛出FileNotFounfError异常。mkdir()函数的基本语法格式如下:

    os.mkdir(path,mode=0777)

      参数说明:

      path:用于指定要创建的目录,可以使用绝对路径,也可以使用相对路径。

      mode:用于指定数值模式,默认值为077.

      如果在创建路径时,demo目录已经存在了,将抛出FileExistsError异常,例如,将上面的示例代码在执行一次,将抛出异常。如下代码可以解决

    import os
    path = "C:\demo"
    if not os.path.exists(path);
        os.mkdir(path)

    创建多级目录

      使用mkdir()函数只能创建一级目录,如果想创建多级,可以使用os模块提供的makedirs()函数,该函数用于采用递归的方式创建目录。makedirs()函数的基本语法格式如下:

    import os
    os.makedirs("c:\demo\test\dir\mr")   # 创建c:demo	estdirmr目录

    删除目录

      删除目录可以使用os模块提供的rmdir()函数实现。通过rmdir()函数删除目录时,只有当要删除的目录为空时才起作用,rmdir()函数的基本语法格式如下:

      如果要删除的目录不存在,那么将抛出“FileNotFoundError:[WinError 2]”系统找不到指定的文件。因此,在执行os.rmdir()函数前,建议先判断该路径是否存在,可以使用os.path.exists()函数判断。具体代码如下:

       使用rmdir()函数只能删除空的目录,如果想要删除非空目录,则需要使用python内置的标准模块shutil的rmtree()函数实现。如下代码

    import shutil
    shutil.rmtree("c:\demo\test")

      遍历目录

      

      

  • 相关阅读:
    四则运算1
    四则运算3
    数组1
    四则运算单元测试
    四则运算2
    数组3
    数组2
    spring aop对service层日志和异常的处理
    Linux设置开机启动
    数据仓库开发——Kettle使用示例
  • 原文地址:https://www.cnblogs.com/weidongliu/p/12033611.html
Copyright © 2011-2022 走看看