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