模块
导入模块
导入模块可以使用import或者from语句,语法格式可以是下面的任意一种:
import 模块名 或者:from 模块名 import 所需变量或者函数
python
import math #引入math模块
from random import random #引入random模块中的random函数
pip工具使用
pip工具针对第三方库操作 pip工具在命令行界面操作
- pip3 install #安装第三方库
- pip3 list #查寻当前系统中已安装的第三方库
- pip3 uninstall #用于卸载已安装的第三方库
- pip3 show #用于列出已安装库的详细信息
- pip3 download #下载第三方库的安装文件,并不安装
文件的操作
文件读/写模式
读/写模式 | 说明 |
---|---|
r | 以只读模式打开(默认值)该模式打开的文件必须存在,如果不存在, |
r+ | 以读/写模式打开。该模式打开的文件必须存在,如果不存在、将报异常 |
w | 以写模式打开。文件如果存在,清空内容后重新创建文件 |
w+ | 以读/写模式打开。文件如果存在,清空内容后重新创建文件 |
a | 以追加的方式打开,写人的内容追加到文件尾。该模式打开的文件如果已经存在,不会清空,否则新建一个文件 |
rb | 以二进制读模式打开,文件指针将会放在文件的开头 |
wb | 以二进制写模式打开 |
ab | 以二进制追加模式打开 |
rb+ | 以二进制读/写模式打开。文件指针将会放在文件的开头 |
wb+ | 以二进制读/写模式打开。如果该文件已存在,则将其覆盖;如果该文件不存在,则会创建新文件 |
ab+ | 以二进制读/写模式打开。如果该文件已存在,文件指针将会放在文件的末尾;如果该文件不存在,则会创建新文件用于读/写 |
打开文件格式
python
a=open("路径和文件名称","文件读写模式") #打开文件
文件操作方法
a.close() #关闭文件
读取文件数据
读取方法:
- read() #读取文本 未指定字符数时全部读取,指定了后,读取指定数
- readlines() #一次性读取所有行,占用内存交大
- readline() #逐行读取文本,读取过程文件指针慢慢后移
python
示例:
a=open("test.txt","r",encoding='UTF-8') #以只读的方式打开文件test.txt
b=a.read(13) #读取文件13个字符
print(b)
a.close() #关闭文件
写入文件数据
写入方法:
- write() #向文件中写入字符串
- wrietlines() #向文件中写入序列
python
示例:
a=open("test.txt","w+") #写入文件方式打开文件
a.write("向文件中写入的字符\n")
a.close() #关闭文件
文件定位读/写
- tell() #读取文件当前位置
- seek() #手动移动指针相对位置
向二进制文件读/写bytes字符串
a=open(r"test.txt","wb")
#以'wb'方式打开二进制文件
a.write(b"hello python")
a=write(bytse(str(n)))
#将整数转换为bytes字符串写入文件
a.close() #关闭文件
pickle模块使用
python
import pickle #引入模块
a=["read","write","tell","seek"]
b=open(r"test.txt","wb")
b.dump(a,b) #向b文件中写入a列表,
b.close()
b=open(r"test.txt","rb")
c=b.load(b) #在读取b文件
print(c)
文件和目录操作
文件的复制,删除及重命名操作
python
#文件复制
import shutil
shutil.copyfile("test.txt",'testb.py') #将test.txt复制为test.py
#文件删除
import os,os.path
a=os.remove(删除文件的名字)
#文件重命名
import os,os.path,sys
os.rename("test.txt","abcd.py") #将文件test.txt改名为abcd.py
文件目录操作
python
import os #导入os模块
os.getcwd() #查看当前目录
os.listdir() #查看当前目录中的文件
os.mkdir("abc") #创建目录abc
os.makedirs("a/b/c") #创建多级目录
os.removedirs("a/b/c") #删除多级目录
import shutil #引入shutil模块
shutil.rmtree("a") #删除a目录中的所有内容
CSV文件格式读/写数据
python
datas=[['name','dep','eng','math','chinese'],['rose','法学',89,78,65],['rose','法学',89,78,65],['rose','法学',89,78,65]] #写入内容
import csv #引入csv模块
a='abc.csv'
with open(a,'w',newline="") as f: #以写入方式打开abc.csv文件赋值给f,newline=""是为了防止写入空行
w=csv.writer(f) #以csv.writer写入f文件,赋值给w
for r in datas: #循环遍历datas文件, 赋值给r,
w.writerow(r) #再调用w,用writerow方法写入f
b=""
with open(a,'r') as f: #以读取的方式打开abc.csv文件赋值给f
re=csv.reader(f) #以csv.reader读取f文件,赋值给re
for r in re: #循环遍历re文件, 赋值给r,
for i in r: #再循环遍历r文件, 赋值给i
b+=i+'\t' #向b中写入i中的元素,\t是制表符,作用是对齐表格数据的各列
b+='\n' #向b中写入\n,\n表示换行符
print(re.line_num,r) #打印re的行号,并打印r列表
print(b) #打印处理后的csv文件
结果:
python
1 ['name', 'dep', 'eng', 'math', 'chinese']
2 ['rose', '法学', '89', '78', '65']
3 ['rose', '法学', '89', '78', '65']
4 ['rose', '法学', '89', '78', '65']
name dep eng math chinese
rose 法学 89 78 65
rose 法学 89 78 65
rose 法学 89 78 65
文件操作的应用
python
a=input("请输入日志文件名:")
b=open(a,'a')
print("请输入日志,exit结束")
s=input("log:")
while s.lower()!="exit": #如果输入的小写字符不等于exit,则进入循环
b.write("\n"+s)
b.write("\n------------\n")
b.flush()
s=input("log:")
b.write("\n===========\n")
b.close()
print("请输入选项,n关闭程序,y查看该文件")
s=input("log:")
if s.lower()=="y":
b=open("abc.txt",'r')
c=b.readlines()
print(c)
b.close()
elif s.lower()=="y":
print("程序关闭")
异常处理
- try...except语句
- else语句和finally语句
- raise语句抛出异常
- assert语句断言
- 自定义异常