每篇必看前言:
该笔记适用于有C/C++/Java基础的想要迅速掌握Python语法的人。
该笔记是以B站黑马2022版教程为背景,所作的笔记。
文件读写基本语法:
文件对象相关方法:
读取方法:
read、readlines、readline:
read方法演示:
如果在一个程序中多次调用read方法,则下一个read读取的开始位置是上一个read读取的结束位置。
如下:
test.txt原文本内容:
f=open("D:/重要文件保护/Desktop/test.txt", "r", encoding="UTF-8")
print(type(f))
content=f.read(3)
content1=f.read()
print(content)
print(content1)
f.close()
readlines和readline方法演示:
test.txt原文本内容:
f=open("D:/重要文件保护/Desktop/test.txt", "r", encoding="UTF-8")
content=f.readlines()
print(type(content))
print(content)
f.close()
f=open("D:/重要文件保护/Desktop/test.txt", "r", encoding="UTF-8")
content=f.readline()
print(content)
content=f.readline()
print(content)
f.close()
循环读取演示:
for f in open("D:/重要文件保护/Desktop/test.txt", "r", encoding="UTF-8"):
print(f)
close方法(建议这部分看原视频):
import time
f=open("D:/重要文件保护/Desktop/test.txt", "r", encoding="UTF-8")
for line in f:
print(line)
f.close()
time.sleep(50000)
通过调用f.close(),此时虽然py程序仍在继续运行,但文件可以正常删除
withopen(建议这部分看原视频):
此时如果在结尾加入time.sleep()且不加f.close(),最后虽然py程序还在继续运行,但文件可以正常删除。
import time
with open("D:/重要文件保护/Desktop/test.txt", "r", encoding="UTF-8") as f:
for line in f:
print(line)
time.sleep(50000)
写入方法:
write和flush:
import time
with open("D:/重要文件保护/Desktop/test.txt", "w", encoding="UTF-8") as f:
f.write("shanshandeisu")
f.flush()
time.sleep(50000)
f.close() # 如果省略了flush的话其实也没有关系,因为close内置了flush
追加写入方法:
import time
with open("D:/重要文件保护/Desktop/test.txt", "a", encoding="UTF-8") as f:
f.write("\nzhengzhengkawayinie")
f.flush()
time.sleep(50000)
f.close()
异常:
基本语法:
try:
可能发生错误的代码
except[异常 as 别名]:
如果出现异常执行的代码
[else:]
未出现异常时应做的事情
[finally:]
不管出不出现异常都会做的事情
例:
import time
try:
with open("D:/重要文件保护/Desktop/test.txt", "r", encoding="UTF-8") as f:
f.write("\nzhengzhengkawayinie")
except:
with open("D:/重要文件保护/Desktop/test.txt", "a", encoding="UTF-8") as f:
f.write("\nzhengzhengkawayinie")
finally:
f.flush()
time.sleep(50000)
f.close()
模块(建议这部分看原视频):
模块就是一个Python文件,以.py结尾,里面有类、函数、变量等,我们可以拿过来用(导入模块去使用)
基本语法:
# 导入模块
import time
time.sleep(5)
# 导入模块并取别名
import time as t
t.sleep(5)
# 导入模块中的特定功能
from time import sleep
sleep(5)
# 导入模块中的全部功能
from time import *
sleep(5)
# 导入模块中的特定功能并取别名
from time import sleep as sl
sl(5)
ATT:导入不同模块的同名功能,后面的会覆盖前面的
main变量:
ATT:针对的是from……import的导入方式。
发现结果直接输出了3
但如果在Calculate类的第三行中写入:if__name__=='__main__':
则可以解决这个问题。
all变量:
ATT:针对的是from……import的导入方式。
自定义python包:
从物理上看,包就是一个文件夹,在该文件夹下包含了一个iit·py文件,该文件夹可用于包含多个模块文件
从逻辑上看,包的本质依然是模块。