cao_xiao_qin's blog System Research

模块定义和文件操作

2018-08-31

阅读:


补充:按住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)打开文件,文件会自动创建。