美文网首页
2018-08-31 Day10-模块定义和文件操作

2018-08-31 Day10-模块定义和文件操作

作者: Deathfeeling | 来源:发表于2018-08-31 08:56 被阅读0次

    补充:按住Ctrl同时点击模块名,可以查看模块内的方法(实现内容大多数被加密)。

    一、什么是模块?:

    对变量、函数、类进行封装,每一个py文件就是一个模块。

    • 怎么使用其他模块中的内容?
    a、import 模块

    通过 "模块.内容" 的形式去使用模块中的内容(全局变量、函数、类)

    import my_list
    my_list.count([1, 2, 3, 4, 5])
    
    b、from 模块 import 模块中的内容
    from my_list import count
    count([1, 2, 3, 4, 5])
    #这样导入可以直接使用模块中的内容。
    
    c、from 模块 import *

    导入模块中的所有内容

    二、重命名

    import 模块 as 新名字
    import 模块 import 内容 as 新名字

    • 如果不导入模块后出现一些不希望使用的内容,可以把这些内容放在这个 if 语句里面
    #将不希望被别的模块导入(执行)的代码放在这个if语句中。
    if __name__ == '__main__':
    
    • 原理:每个模块都有一个__name __属性。
      a、这个属性的默认值就是当前模块的文件名(别人导入的情况)。
      b、当当前模块正在被执行(直接在当前模块中点击run)的时候,__name __属性的值是__main __。
      所以当别人导入这个模块的时候,名字变成了当前模块的文件名,if条件不成立,便不会执行之后的代码。

    • 建议:函数声明、类的声明、一些希望被外部使用的全局变量,一般写在 if 的外面,其他写在 if 里面

    三、文件

    程序中不管操作任何文件,不管怎么操作,过程都是一样的。

    • 过程:打开文件 --> 操作文件 --> 关闭文件

    程序中通过变量、列表、字典等保存的数据,在程序结束后都会销毁。

    数据持久化、本地化,都要使用文件来保存数据(数据库文件、txt文档、json文件、plist文件、xml文件、二进制文件(图片、音频、视频等))

    1、打开文件

    open(文件地址,打开方式,encoding=编码方式)

    文件地址:填文件路径(绝对路径和相对路径)
    相对路径:
    ./ 相对路径(相对于当前文件所在的目录)
    ../相对路径(相对于当前文件目录的上一个目录)
    .../相对路径(相对于当前文件目录的上两个目录)

    打开方式:读和写的方式
    'r' --> 读(默认值),读出来的文字以文本形式返回
    'rb' / 'br' --> 读,读出来的内容以二进制(bytes)的形式返回
    'w' --> 写,写文本到文件中
    'wb' / 'bw' --> 写,以二进制数据(bytes)到文件中
    'a' --> 写,追加

    编码方式:以文本的形式读和写的时候才需要设置编码方式。
    utf-8:万国码
    gbk:只支持中文

    返回值:open函数的返回值是被打开的文件对象

    2.操作文件

    a、读文件
    关闭文件之前,因为指针问题,每次读操作接着上次指针的位置继续读取。

    f.readline(): 每次读一行

    f = open('../1111.txt','r')
    content = f.readline()
    while content:
        print(content)
        content = f.readline()
    f.close
    

    b、写操作
    打开方式是‘w’,操作会覆盖原文件;打开方式是‘a’,操作是在文件后追加。

    #会覆盖原来的文件
    f = open('../1111.txt','w')
    f.write('程序员的诗')
    f.close
    
    3、关闭文件

    f.close()

    4、文件不存在的情况

    当以读的形式打开文件,文件不存在会报错。
    当以写的形式(w、a)打开文件,文件会自动创建。

    相关文章

      网友评论

          本文标题:2018-08-31 Day10-模块定义和文件操作

          本文链接:https://www.haomeiwen.com/subject/kwwdwftx.html