1,什么是Python的IO(底层)
2,python的open)函数(读取字符和字节文件)(with语句块的使用)
3,python的xxx.write)方法
4,Python文件的备份
5,密码字典生成器
壹 什么是Python的IO
input && output 输入和输出;
简单的说就是将内存中的瞬时数据持久化到硬盘上;
其实在控制台接收数据的input函数也算是IO的一部分,但我们今天主要是讨论一下从内存和硬盘中IO数据的一些方法
贰 python的open)函数
有点多,先简单说一下操作文件的第一步:打开文件:
open文件路径,打开模式)
"""调用open函数打开一个文件open函数打开当前工作空间下的a.txt文件第二个参数表示打开文件的模式默认不写,则是rt,表示读取文件默认读取的数据是文本文档第二个参数的说明文档摘要:========= ===============================================================Character Meaning--------- ---------------------------------------------------------------'r' open for reading default)'w' open for writing, truncating the file first'x' create a new file and open it for writing'a' open for writing, appending to the end of the file if it exists'b' binary mode't' text mode default)'+' open a disk file for updating reading and writing)'U' universal newline mode deprecated)========= ==============================================================="""
f = open"C:\\Users\\Administrator\\Desktop\\code\\b.txt", "rt", encoding="utf-8")
这样就成功的打开了"C:\\Users\\Administrator\\Desktop\\code\\b.txt"路径下的这个文件
模式 | r | r+ | w | w+ | a | a+ |
---|---|---|---|---|---|---|
读 | + | + | + | + | ||
写 | + | + | + | + | + | |
创建 | + | + | + | + | ||
覆盖 | + | + | ||||
指针在开始 | + | + | + | + | ||
指针在结尾 | + | + |
不知道用啥的时候,就用W+,全能的
file.readsize)
为了读取一个文件的内容,调用 f.readsize), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。
size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。
f = open"C:\\Users\\Administrator\\Desktop\\code\\b.txt", "rt", encoding="utf-8")
printf.read))
file.close)
在文本文件中 那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。
当你处理完一个文件后, 调用 f.close) 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。
f = open"C:\\Users\\Administrator\\Desktop\\code\\b.txt", "rt", encoding="utf-8")
printf.read))
f.close)
with语句块
with语句块 在IO操作的时候,发现IO一旦打开,必须关闭;关闭操作又很容易被程序员忘记!
python为大家提供with 在python如果使用with 打开IO,则with结束时 自动调用io的close,就不用在写file.close)了
with open"C:\\Users\\95385\\Desktop\\test.txt", "a") as f:f.write"alexz NB\n")"""这样子就成功用“a”追加模式打开了一个文件,并且在里面写下了一行字符串,并换行;通过with语句块写的IO操作在末尾可以不用协商close),因为编译器会自动执行关闭命令"""
file.write)方法
f.writestring) 将 string 写入到文件f中, 然后返回写入的字符数。
但是前提写入的东西必须是字符串,若不是字符串记得用 str) 转化一下
msg = "abcdefg\n"f = open"C:\\Users\\95385\\Desktop\\test.txt", "w")printf.writemsg)) f.close)"""运行结果就是8,因为7个字符加上一个换行
mode=a,a append,表示在文档末尾再追加数据
不会覆盖原有数据
如果是mode='x',表示该文件必须在不存在的情况下,第一次打开,就会创建文件"""
肆 用open函数进行数据的复制(备份)
def copy_file):with open"C:\\Users\\95385\\Desktop\\test.jpg", "rb") as fr: #这里的图片,并不是字符串类型的数据,所以进行读写操作的时候需要使用 “b” 字节类型的数据
"""|------- 这里是用的是with语句块 -------|
"""with open"C:\\Users\\95385\\Desktop\\test2.jpg", "ab") as fw:while True:# fr.read) # 不要这样读取数据content = fr.read10 * 1024 * 1024) # 一个10M为单位读取数据,防止读取过多,导致内存不够用,电脑蓝屏if content != b'': fw.writecontent) # 直接将数据读取到内存中的content来进行转发else:breakcopy_file)
可以吧函数的形参变一下,就可以任意路径进行数据备份了
伍 密码字典生成器py脚本实现
# @Time : 2020.02.28
# @Author : Alexz__
# @File : 密码字典生成器.pynum = ["0","1","2","3","4","5","6","7","8","9"] #可以自行添加需要排列组合的元素with open"C:\\Users\\95385\\Desktop\\密码字典.txt","w") as fw: #添加密码字典输出路径for x in range0,10): #要输出多少位密码就要有多少个for循环for y in range0,10):for z in range0,10):for j in range0,10):for k in range0,10):dic = [num[x],num[y],num[z],num[j],num[k]]passwd = ''.joindic) #通过join方法将列表拼接成字符串,才得以输出fw.writepasswd+'\n') #密码字典的通用写法:一行一个