【python基础语法】模块和包管理,文件的操作(第8天课堂笔记)
'''
模块和包管理
模块和包的定义:
模块:模块是一个Python文件,以.py结尾,包含了Python对象定义和Python语句
包:Python中的包就是一个包含__init__.py文件的目录(文件夹)
为什么代码会有浅色的波浪线和红色的波浪线?
浅色的波浪线:pycharm检测你的这行代码不符合pep8规范(官方给出的编码规范)
红色的波浪线:pycharm检测到这行代码语法有问题,或者变量找不到(没有被定义)
模块的作用:
模块让你能够有逻辑地组织你的Python代码段
把相关的功能代码写到一个模块里能让你的代码更好用,更易懂
模块能定义函数,类和变量,模块里也能包含可执行的代码
分层设计:方便管理和维护和修改代码 打开文件:open(文件名,打开的模式(r,a,w),encoding=编码方式)
r模式:读
a模式:写入,无法读取内容,追加写入(在文件内容的结尾处写入)
w模式:写入,无法读取内容(覆盖文件中原来的内容) r模式 打开不存在的文件会报错
a,w模式打开文件,如果文件不存在,则会自动创建一个 文件读取的三种方式:
# read()
# readline()
# readlines按行读取所有的内容,每一行内容当成一个元素,放到一个列表中(最后返回的是一个列表) 以字节流模式打开文件(图片、视频等格式的文件) 以文件上下文管理器打开文件:with关键字
举例:
with open("data.txt","r",encoding="utf8") as f:
c = f.read()
print(c)
'''
# test01文件内容
import random a = 100
num = 200
def work():
print("test01中的work函数") # 魔法变量:__name__:
# print("__name__的值:",__name__)
# 在模块导入的时候不希望执行的代码给与隐藏
if __name__ == "__main__":
num = random.random()
print(num) # 模块导入
# 方式一:导入整个模块
import test01
# 方式二、导入模块中的部分内容
from test01 import a
print(a)
# 这个波浪线并不是代码写错了,pycharm识别不出我们自定义的这个模块
from test01 import work
work()
# 扩展
# 通过as给导入进来的方法或者变量重新起个名字(别名)
# work也可以被叫做w1,如果两个方法或者函数名有重名的时候可以使用as,不然导入的数据会被覆盖掉
from test01 import work as w1
w1()
# 同时导入模块中的多个方法和函数和变量
from test01 import a,work,num
print(a)
print(num) # 导入模块中所有的内容(不推荐使用)
from test01 import *
print(a)
print(num)
work() # 包导入
# from 包名 import 模块名
# from 包名.模块名 import 模块中的变量或方法
# from pack01 import module1 module1.m_func1()
print(module1.aa)
print(module1.bb) from pack01.module1 import aa,bb
print(aa)
print(bb) # 剥洋葱
from pack01.ppp import p_m1
print(p_m1.aa)
print(p_m1.bb)
# from pack01.ppp.p_m1 import 变量或者方法
from pack01.ppp.p_m1 import aa,bb
print(aa)
print(bb) # r模式
# 如何在python中去打开一个文件
# 打开文件
# 读取文件中的内容
f = open("data.txt","r",encoding="utf8")
data = f.read()
print(data) # a模式
# 写入内容,在文件末尾追加内容
f = open("data.txt","a",encoding="utf8")
# # 写入方法write:参数:必须是字符串格式
f.write("python23期666")
# # 写入方法writelines:参数:列表
f.writelines(["","",""]) # w模式
f = open("data1.txt","w",encoding="utf8")
# # 读取文件中的内容
f.write("python66622")
# # 关闭文件
f.close() # 文件读取的三种方式
f = open("data1.txt","r",encoding="utf8")
# read():读取文件中所有的内容
content = f.read()
print(content)
# readline():读取一行内容
res = f.readline()
print(res)
# readlines按行读取所有的内容,每一行内容当成一个元素,放到一个列表中(最后返回的是一个列表)
datas = f.readlines()
print(datas)
# 关闭文件
f.close() # 以字节流方式打开数据,下载图片,或者爬虫方式下载图片
f = open("bj01.png","rb")
c = f.read()
print(c) # 通过上下文管理器with去操作文件,不用手动关闭文件,会自动关闭
with open("data.txt","r",encoding="utf8") as f:
c = f.read()
print(c) # 复制文件操作
with open("nmb_2020_02_27.py","r",encoding="utf8") as f:
c = f.read()
with open("copy01.py","w",encoding="utf8") as fw:
fw.write(c) # 自动化测试主要要做的是:逻辑的处理和格式的处理
【python基础语法】模块和包管理,文件的操作(第8天课堂笔记)的更多相关文章
- 【python基础语法】多重循环嵌套,函数(第6天课堂笔记)
1.什么是函数?函数有什么作用? 函数都是有特定功能的,都是由一些有特定功能的进行封装完成的 2.已经学过了哪些内置函数?分别有什么作用? print:输出 input:输入 type:查询数据类型 ...
- 【python基础语法】数据类型:数值、字符串 (第2天课堂笔记)
""" 数据类型: 一.数值类型:整数 浮点数 布尔值 二.序列类型:字符串.列表 元祖 三.散列类型:字典 集合 可变数据类型: 列表 字典 集合,可以改动内存地址数据 ...
- 二十五. Python基础(25)--模块和包
二十五. Python基础(25)--模块和包 ● 知识框架 ● 模块的属性__name__ # my_module.py def fun1(): print("Hello& ...
- Python基础之模块与包
一.模块 1.什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函 ...
- python基础(22):模块、包
1. 模块 1.1 什么是模块 别人写好的函数.变量.方法放在一个文件里 (这个文件可以被我们直接使用)这个文件就是个模块 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模 ...
- [19/10/16-星期三] Python中的模块和包、异常、操作文件
一.模块 # 模块(module) # 模块化,模块化指将一个完整的程序分解为一个一个小的模块 # 通过将模块组合,来搭建出一个完整的程序 # 不采用模块化,统一将所有的代码编写到一个文件中 # 采用 ...
- 零基础学Python-第二章 :Python基础语法-06.变量的定义和常用操作
网络带宽计算器的原理 输出的内容用print 引入变量,在前面写一个变量,是一个有意义的单词.把123这个数值赋值给变量a 下面的代码可读性 要比上面高很多. 变量其他需要掌握的知识点 一般这样是用做 ...
- python学习第五讲,python基础语法之函数语法,与Import导入模块.
目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...
- python基础语法、数据结构、字符编码、文件处理 练习题
考试范围 '''1.python入门:编程语言相关概念2.python基础语法:变量.运算符.流程控制3.数据结构:数字.字符串.列表.元组.字典.集合4.字符编码5.文件处理''' 考试内容 1.简 ...
随机推荐
- 前端url参数中带有callback并产生错误
错误截图: 初步诊断是由于后端返回值的数据格式不正确造成的 解决方式: 1).接受在springmvc中接受callback参数 2).将对象转为Object 3).拼接callback方法,其中返回 ...
- try catch finally的理解
定义以及用法: try/catch/finally 语句用于处理代码中可能出现的错误信息. 错误可能是语法错误,通常是程序员造成的编码错误或错别字.也可能是拼写错误或语言中缺少的功能(可能由于浏览器差 ...
- centos7安装OTRS6
1.在文件/etc/selinux/config中配置SELINUX=disabled 重启系统.重启后确认命令getenforce返回为Disabled 2.配置数据库 我们这里使用MariaDB ...
- Linux防火墙之iptables常用扩展匹配条件(二)
上一篇博文我们讲到了iptables的一些常用的扩展匹配模块以及扩展模块的一些选项的说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12273755.htm ...
- Java实现多线程下载,支持断点续传
完整代码:https://github.com/iyuanyb/Downloader 多线程下载及断点续传的实现是使用 HTTP/1.1 引入的 Range 请求参数,可以访问Web资源的指定区间的内 ...
- ARTS Week 13
Jan 20, 2020 ~ Jan 26, 2020 Algorithm Problem 141 Linked List Cycle (环形链表) 题目链接 题目描述:给定一个链表,判断链表中是否存 ...
- 请转发!简单2分钟制作无接触式小区进出微信登记表!全免费!数据安全!所有数据均存在创建人登录的QQ腾讯文档里!
全免费!数据安全!所有数据均存在创建人登录的QQ腾讯文档里! 阻击疫情到了最吃劲的关键期,大家能不出门就不出门,但免不了出去买个菜.取个快递啥的,每次出入的时候,社区同志都在认真拿着笔记录每个进出信息 ...
- 题解【Luogu6022 快乐水】
\[ Preface \] 大概在半年前出过这道((( 然后当天读完这题,把自己写的 std 改了一下 ll 和特判信息交上去就 A 了. 捡了个大便宜. \[ Description \] 你一开始 ...
- asp.net core系列 WebAPI 作者:懒懒的程序员一枚
asp.net core系列 36 WebAPI 搭建详细示例一.概述1.1 创建web项目1.2 添加模型类1.3 添加数据库上下文1.4 注册上下文1.5 添加控制器1.6 添加Get方法1.7 ...
- Go语言实现:【剑指offer】合并两个排序的链表
该题目来源于牛客网<剑指offer>专题. 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. Go语言实现: //递归 func merge(l ...