python self-study-class12

  1. Pickle function usage
import pickle
sfzlist=[["10","txm"],
["0","tcm"],
["1","tvm"],
["2","twm"],
["3","tfm"],
["4","tgm"],
["5","ttm"],
["6","tym"],
["7","tgm"],
["8","thm"],
["9","tom"]]
file = open("sfz.bin","wb")
pickle.dump(sfzlist,file)  #dump全部写入文件,若没有自动在该目录下创建一个文件
file.close()               #dump把内存写入文件
''''--------------------------------------------------------------''
sfzlist = []
file = open("sfz.bin","rb")
sfzlist = pickle.load(file)  #load读出文件内容
file.close()                 #load将对象文件加载到内存
print(sfzlist)
  1. File data manipulation
import os
#os.listdir 遍历所有文件或者文件夹
#返回list
filepath = r"文件路径"
filelist = os.listdir(filepath)   #返回list,包含所有文件名
fileallpath = r"归并路径"    #归并
fileall = open(filepath,"wb")#写入

for filename in filelist:  #循环每一个文件名
    filelitepath = filepath + "\\" + filename  #新建更深层次路径
    filer = open(filelitepath,"rb")
    for line in filer:  #每一行读取后写入 
        fileall.write(line)
    filer.close()
fileall.close
#import os
#os.mkdir(r"filepath")  #在一个路径下新建一个文件夹

num = 10 #切割数量
filesplitlist=[] #文件集合
for i in range(num):
    filepath = r"文件路径" +str(num) + ".txt"
    file = open(filepath,"wb")
    filesplitlist.append(file)


fileallpath = r"归并路径"    #
fileall = open(filepath,"rb")#读取
i = 0   #均匀切割需要的计数器
for line in fileall:
    filesplitlist[i%num].write(line)
    i += 1

fileall.close()
for i in range(num):
    filesplitlist[i].close()
  1. Solve the SyntaxError: Non-UTF-8 code starting with \xb8 error
    in the python code Add #coding=gbk to the first paragraph of the source code
#coding=gbk
file = open(r"D:\Python代码\class12\明文.txt","r")
filejia = open(r"D:\Python代码\class12\密文.txt","w")
ch = True
while ch:
    ch = file.read(1)
    if ch:   #读取
        jiach = chr(ord(ch)+1)  #凯撒密码加密移位
        filejia.write(jiach)
file.close()
filejia.close()

The solution is quoted from:
(https://blog.csdn.net/weixin_40205234/article/details/86487798)
4. Common directory methods of os

#coding=gbk
import os

#popen
mystr = os.popen("tasklist") #popen与system区别:都可以执行指令,但system不能获取返回值,popen返回一个文件对象
mystr = mystr.read()  #read可以读取
print("hello",mystr)   #输出对象
if mystr.find("QQ.exe") != -1:
    print("发现QQ")
else:
    print("QQ没有打开")

#文件夹操作
os.mkdir(r"路径")  #创建文件夹必须一层一层地创建
os.rmdir(r"路径")  #只能删除空文件夹
os.remove(r"路径")  #删除文件
os.rename(r"路径",r"路径修改后")  #文件或文件夹重命名

mylist = os.listdir(r"路径")  #列举文件夹下的所有文件与文件夹

print(os.path.isfile(r"路径"))   #判断是否是文件
print(os.path.isdir(r"路径"))    #判断是否是文件夹
  1. Simple merge sort
def merge(mylist1,mylist2):
    mylisttall = []
    while len(mylist1) >0 and len(mylist2) >0:
        if mylist1[0] <mylist2[0]:
            mylisttall.append(mylist1[0])
            del mylist1[0]
        else:
            mylisttall.append(mylist2[0])
            del mylist2[0]
    mylisttall.extend(mylist1)
    mylisttall.extend(mylist2)
    return mylisttall

mylist1 = [2,5,9,6,23,14]
mylist2 = [8,4,3]
mylist1.sort()
mylist2.sort()
print(merge(mylist1,mylist2))
  1. Full array generation and brute force exhaustive password
#coding=gbk
import itertools
'''
#制造全排列
#mylist = list(itertools.permutations([1,2,3,4],3))  #穷举三位的全排列,4个数的列表随机取出三个数排列
mylist = list(itertools.permutations(['A','B','C','D'],3))
print(mylist)
'''

#例如随机生成百度云四位密码
mylist = (["".join(x) for x in itertools.product("0123456789",repeat=6)])
#print(mylist)
#print(len(mylist))

file = open(r"D:\Python代码\class12\银行密码.txt","wb")
for i in mylist:
    file.write((i+"\r\n").encode("utf-8"))
file.close()

  1. Generator itertools
#coding = gbk
import itertools
mylist = ["".join(x) for x in itertools.product("012349",repeat=6)]
print(mylist)
print(type(mylist))  #生成器类型
print(next(mylist))
print(next(mylist))

Guess you like

Origin blog.csdn.net/weixin_46837674/article/details/109727382