zoukankan      html  css  js  c++  java
  • Python程序设计7——文件读写

    1 文件读写简介                                           

      文件读写是应用程序中的常用操作。下面介绍Python中进行文件读写。Python的文件读写是非常简单的。

    1.1 open函数

      open函数一般有了两个必须参数,一个是文件名参数,另一个是模式参数,所谓模式参数是指读写等模式。还有一个参数用来控制文件的缓存,默认值为0,表示不缓冲,设置为1表示有缓冲。
      open函数的模式值

    r     读模式打开
    w     读写模式打开
    a     写入模式打开
    b     二进制模式打开(可以和其他模式并用)
    +     读写模式打开,可以和其他模式并用
    U     支持换行符例如
    ,
    

      默认是以r打开,需要注意的是,如果是特殊文件如视频或者图片文件,必须以b模式

    o = open(r"F:Personal StudyCodeLibraryPythonchapter4abc.txt", 'r')
    o.write("Hello World")
    o.close()

      注意:如果文件本身不存在的,open函数会自动判断,进行创建。

    1.2 文件读取                         

      将文本文件的内容读入,可以操作字符串变量的函数有3个,但他没对文件的读取方式各不相同,其中read()函数可以一次性读取,readline函数按行读取,readlines函数则以多行方式读取。

    1.read函数

    read函数使用规则如下:
    content = read([num])
    read函数只有一个参数num,这个参数是可选的用于控制函数读取数据的字符数。

    o = open(r'/home/jack/demo/4.5/Demo05.py')
    content = o.read()
    print content
    print o.tell()
    content = o.read(16)
    print content
    o.close()
    输出结果:
    o = open(r'/home/jack/demo/4.5/Demo05.py')
    content = o.read()
    print content
    print o.tell()
    content = o.read(16)
    print content
    o.close()
    
    183
    View Code

    程序分析:tell方法用于查询当前文件的字符的长度,返回值是一个整数

    2.readline函数

      readline函数同样用来读取数据,但是每次只读取一样。
    函数语法如下:
    content = readline([num])
      readline函数有一个参数,该参数作用和read函数参数一样,用于返回结果集中的字符内容。

    o = open(r'/home/jack/demo/4.5/Demo05.py')
    print o.tell()
    content = o.readline(2)
    print content
    content = o.readline()
    print content
    o.close()
    输出结果:
    0
    o 
    = open(r'/home/jack/demo/4.5/Demo05.py')
    View Code

    3.readlines函数

      该函数使用循环读取内容,能够显示文件的所有行
    使用规则:
    listcoentent = readlines()
    例子:

    o = open(r'/home/jack/demo/4.5/Demo05.py')
    contents = o.readlines()
    for content in contents:
        print content
    o.close()
    输出结果:
    o = open(r'/home/jack/demo/4.5/Demo05.py')
    
    contents = o.readlines()
    
    for content in contents:
    
        print content
    
    o.close()
    View Code

    1.3 文件的写入                     

      将内容通过片python写入已创建的文件中,这个过程叫文件写入。下面介绍write写入字符串以及使用函数wirtelines写入数据到文件。
    1.write函数
    规则:write(content)
    该函数只有一个参数,并且是必须的。

    o = open(r'/home/jack/demo/4.5/Demo06.py','w+')
    o.write("o = open(r'/home/jack/demo/4.5/Demo05.py')
    contents = o.readlines()
    for content in contents:
    	print content
    o.close()")
    o.close()

    分析:该程序将一个程序写入到另一个文件中Demo06.py中,修改Demo06.py的执行权限后,可以直接执行。
    2.writelines函数
      writelines只有一个参数,参数是集合类型数据
    规则:writelines(listcontent)

    o = open(r'/home/jack/demo/4.5/Demo06.py','w+')
    listcontent = ['Hello', 'World']
    o.writelines(listcontent)
    o.close()

    运行后会将列表中的数据写入到Demo06.py文件中
    注意:如果是字典文件,只会将键写入,值不会写入。
    示例:创建一个记事本:

    print '==================Welcome to use QiQi Note================='
    con = True
    while con:
        k = int(raw_input('Please input your operation:
    1.I want to write diary
    2.I want to read my diaries
    3.quit
    '))
        if(k == 1):
            o = open(r"/home/jack/demo/4.5/mylog.txt","a+");
            content = raw_input("Please write:
    ")
            o.write(content);
            o.close();
            print "====================";
        elif(k == 2):
            print "====================";
            o = open(r"/home/jack/demo/4.5/mylog.txt","a+");
            listcontent = o.readlines();
            for content in listcontent:
                print content;
            o.close();
            print "====================";
        else:
            print "Welcome to use next time";
            con = False;
    View Code

    选择输入1,输入一些内容后,再选择2读取
    ====================
    I miss you,QiQi
    ====================
    os模块和os.path模块
    os模块和os.path模块下包含了与普通操作系统的交互功能。如果你希望程序能够与平台无关,这个模块很重要。这个模块提供了统一的操作系统接口函数
    os模块比较重要的函数

    下面介绍常用函数

    remove函数
    语法如下:
    import os;
    os.remove(file)
    一个例子:

    #!/usr/bin/python
    import os;
    if (os.path.exists(r"/home/jack/demo/4.5/abc.txt")):
        os.remove(r"/home/jack/demo/4.5/abc.txt");
        print "Remove successfully";

    copyfile和move函数

      这两个函数属于shutil模块的,这个模块下包含下面几个常用的函数:

    copyfile函数语法是:copyfile(src,dst)
      该函数有两个参数,其中src表示需要复制文件的地址,参数dst表示文件复制的目的地址。另外使用move函数实现文件的移动操作。

    import shutil;
    shutil.copyfile(r"/home/jack/demo/4.5/Demo07.py", r"/home/jack/demo/4.5/bk_Demo07.py");
    shutil.move(r"/home/jack/demo/4.5/Demo06.py", r"/home/jack/demo/Demo06.py");

    mkdir函数

      该函数和linux的mkdir命令作用是一样的,用于创建一个自定义目录。语法如下:

    import os;
    os.mkdir(dir)

      下面例子用mkdir创建了一个目录,并用open函数生成了一个文件

    >>> import os
    >>> os.mkdir(r"/home/jack/demo/4.5/hell")
    >>>open(r"/home/jack/demo/4.5/hell/abc.txt","a+")

    makedirs函数

      该函数同样是用来创建一个目录,它和mkdir函数作用相同,唯一不同的是,makedirs函数可以创建多级目录,而mkdir不能

    os.makedirs(dir)
    os.makedirs(r"/home/a/b")

    rmdir函数

    这个函数用来删除空目录的,如果目录中存在子文件夹或者文件则会抛出异常。
    os.rmdir(dir)

    rmtree函数
    这个函数用于删除非空目录,无论里面是不是有子文件夹或者文件,都可以删除
    shutil.rmtree(dir)

  • 相关阅读:
    axios
    vue打包之后生成一个配置文件修改请求接口
    微信小程序小结(2) ------ 自定义组件
    eros --- Windows Android真机调试
    weex前端式写法解决方案---eros
    微信小程序小结(1) ------ 前后端交互及wx.request的简易封装
    configparser模块--配置文件
    怎样尊重一个程序员
    poj1326(bfs)
    安装篇——压缩包安装MySql数据库
  • 原文地址:https://www.cnblogs.com/people/p/3242217.html
Copyright © 2011-2022 走看看