首页后端开发Python学习Pythonの笔记

学习Pythonの笔记

时间2023-07-06 06:21:01发布访客分类Python浏览693
导读:获取目录运行目录(cmd)import os cmd=os.getcwd( Py文件目录import os py=os.path.dirname(os.path.abspath(__file__ EXE文件目录import sys pri...

获取目录

运行目录(cmd)

import os
cmd=os.getcwd()

Py文件目录

import os
py=os.path.dirname(os.path.abspath(__file__))

EXE文件目录

import sys
print(sys.executable)

运行结果(.py)

C:\Users\28734\AppData\Local\Programs\Python\Python39\python.exe

故在非EXE中调试时,获取的是Python.exe所在位置

获取某文件的文件名并拆分

import os
file='E:\...\xxx.jpg' #文件目录
#获取文件名
filedir=os.path.split(file) #filedir: ['E:\...\xxx.jpg','xxx.jpg']
filename=filedir[1] #filename: xxx.jpg
#拆分文件名
file=filename.split('.') #以“.”号分割字符串 file: ['xxx','jpg']
name=file[0] #name: xxx
houzui=file[1] #houzui: jpg

拆分字符串

a='123456.6543321.000000'
a1=a.split('.') #a1: 123456

当前时间获取

import datetime
time = datetime.datetime.now() #获取当前时间(2021-08-15 23:50:40.236077)
realtime = time.strftime("%Y-%m-%d") #格式化获取到的时间(2021-08-15)

计算时间差

from dateutil import parser
d1 = '2021-01-01'
d2 = '2021-02-01'
days = str((parser.parse(d2) - parser.parse(d1)).days)

从XML提取信息

temp.xml:

未经格式化:

?xml version="1.0" encoding="utf-8" ?>
    images>
    image>
    startdate>
    20210813/startdate>
    fullstartdate>
    202108130900/fullstartdate>
    enddate>
    20210814/enddate>
    url>
    /th?id=OHR.UbehebeCrater_ZH-CN0157876978_1920x1080.jpg&
    amp;
    rf=LaDigue_1920x1080.jpg&
    amp;
    pid=hp/url>
    urlBase>
    /th?id=OHR.UbehebeCrater_ZH-CN0157876978/urlBase>
    copyright>
    死亡谷国家公园里的优比喜比火山口,加利福尼亚州 (© Albert Knapp/Alamy)/copyright>
    copyrightlink>
    https://www.bing.com/search?q=%E6%AD%BB%E4%BA%A1%E8%B0%B7%E5%9B%BD%E5%AE%B6%E5%85%AC%E5%9B%AD&
    amp;
    form=hpcapt&
    amp;
    mkt=zh-cn/copyrightlink>
    headline>
    /headline>
    drk>
    1/drk>
    top>
    1/top>
    bot>
    1/bot>
    hotspots>
    /hotspots>
    /image>
    tooltips>
    loadMessage>
    message>
    正在加载.../message>
    /loadMessage>
    previousImage>
    text>
    上一个图像/text>
    /previousImage>
    nextImage>
    text>
    下一个图像/text>
    /nextImage>
    play>
    text>
    播放视频/text>
    /play>
    pause>
    text>
    暂停视频/text>
    /pause>
    /tooltips>
    /images>
    

经格式化

images>
    
	image>
    
		startdate>
    20210813/startdate>
    
		fullstartdate>
    202108130900/fullstartdate>
    
		enddate>
    20210814/enddate>
    
		url>
    /th?id=OHR.UbehebeCrater_ZH-CN0157876978_1920x1080.jpg&
    rf=LaDigue_1920x1080.jpg&
    pid=hp/url>
    
		urlBase>
    /th?id=OHR.UbehebeCrater_ZH-CN0157876978/urlBase>
    
		copyright>
    死亡谷国家公园里的优比喜比火山口,加利福尼亚州 (© Albert Knapp/Alamy)/copyright>
    
		copyrightlink>
    https://www.bing.com/search?q=%E6%AD%BB%E4%BA%A1%E8%B0%B7%E5%9B%BD%E5%AE%B6%E5%85%AC%E5%9B%AD&
    form=hpcapt&
    mkt=zh-cn/copyrightlink>
    
		headline/>
    
		drk>
    1/drk>
    
		top>
    1/top>
    
		bot>
    1/bot>
    
		hotspots/>
    
	/image>
    
tooltips>
    
	loadMessage>
    
		message>
    正在加载.../message>
    
	/loadMessage>
    
	previousImage>
    
		text>
    上一个图像/text>
    
	/previousImage>
    
	nextImage>
    
		text>
    下一个图像/text>
    
	/nextImage>
    
	play>
    
		text>
    播放视频/text>
    
	/play>
    
	pause>
    
		text>
    暂停视频/text>
    
	/pause>
    
	/tooltips>
    
/images>

Python源码:

from xml.dom import minidom
dom=minidom.parse("temp.xml") #加载和读取XML文件
root=dom.documentElement #获取XML文档对象
msg = root.getElementsByTagName('copyright') #数据所在节点名
information1 = msg[0].firstChild.data #获取文本名
print('拍摄地(作者):',information1)

多线程运行任务

from threading import Thread  
t1 = Thread(target=first) #指定t1线程的任务——运行first函数
t2 = Thread(target=sec) #指定t2线程的任务——运行sec函数
#多线程开始
t1.start()
t2.start()

给图片插入句子

import cv2
from PIL import ImageFont, ImageDraw, Image
import numpy as np	
bk_img= cv2.imread("first.jpg") #读取first.jpg
word = 'Hello world' #此处写你的句子
fontpath= "HarmonyOS_Sans_SC_Black.ttf" #设置字体
font= ImageFont.truetype(fontpath,32) #设置字体长度
img_pil= Image.fromarray(bk_img) #转换数据
draw= ImageDraw.Draw(img_pil) #简化模块长度
draw.text((70,230), word, font= font, fill= (0,0,0))
#绘制文字信息,(70,230)为字体的位置,(0,0,0)为颜色RGB码
bk_img= np.array(img_pil) #转换数组
cv2.imshow("finally",bk_img) #展示图片
cv2.waitKey() #展示图片时按任意键继续
cv2.imwrite("finally.jpg",bk_img)#写入图片

打开指定网站

import webbrowser
url = 'https://muspace.top'
webbrowser.open_new(url)

注册表

import win32api
import win32con
key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters',0, win32con.KEY_ALL_ACCESS)
#定位:key = win32api.RegOpenKey(win32.com.[第一级目录],'注册表位置',0,win32con.KEY_ALL_ACCESS)
win32api.RegCreateKey(key,'{
2227A280-3AEA-1069-A2DE-08002B30309D}
')
#新建项:win32api.RegCreateKey(key,'[项名]')
win32api.RegSetValueEx(key,'EnablePrefetcher',0,win32con.REG_SZ,'00000001')
#写注册表:win32api.RegSetValueEx(key,'[值名]',0,win32con.[值类型],('[值]'))

随机从txt中读取值

def txt():
    import random
    with open('sen.txt', 'r' , encoding='utf8') as f: #打开sen.txt
        datas = f.readlines() #按换行符获取值
        data  =  random.choice(datas) #随机选择数据
    if data.strip() == '': #当获取到的数据为空时
        txt() #重新执行函数
    else:
        return data.strip() #反之,返回值

查找图片并扫描其二维码

import numpy as np
from PIL import Image
from pyzbar import pyzbar
import glob
import os
import sys

PATH_TO_TEST_IMAGES_DIR = os.path.dirname(os.path.abspath(__file__)) #获取Py文件所在路径
img=PATH_TO_TEST_IMAGES_DIR + "/*.[jp][pn]g"

for pidImage in glob.glob(img): #查找jpg和png文件
    print('要解析二维码的图片: ',pidImage)
    im = np.array(Image.open(pidImage)) # 读取文件,转成数组
try:
    print(pyzbar.decode(im)[0].data.decode("utf-8")) # 输出内容
    os.remove(pidImage) #扫过移除二维码
    print('识别完毕,自动移除二维码')
except:
    print('无法识别二维码,请检查你的图片是否正确或确认程序根目录中含有图片')

图片转码

from PIL import Image 
pidImage='xxx.jpg'
im = Image.open(pidImage).convert('RGB') # 打开图片
im.save(newfilename,'webp') #以webp方式保存图片

使用字典方法实现switch,改掉叠if杀人书的习惯

From:Python那些优雅的写法:switch-case - 简书 (jianshu.com)

# switch = {
"valueA":functionA,"valueB":functionB,"valueC":functionC}

# try:
#  switch["value"]() #执行相应的方法。
# except KeyError as e:
#       pass 或 functionX #执行default部分

switch = {

    "a":lambda:x:x*2,
    "b":lambda:x:x*3,
    "c":lambda:x:x**x
}
    
try:
    swtich["c"](6)
except KeyError as e:
    pass

进度条显示

from tqdm import tqdm
for i in tqdm(range(100000)):
	#print('hello world')

解压zip压缩包

import zipfile
with zipfile.ZipFile(zipname) as zf:
                zf.extractall()

遍历文件夹中的所有文件并重命名

for file in os.listdir(imgdir):
	newname=file+'.jpg'
	new_name=file.replace(file,newname)
	#重命名
    os.renames(os.path.join(imgdir,file),os.path.join(imgdir,new_name))

requirements.txt

用于指示程序所用第三方库

生成

# 安装
pip install pipreqs
# 在当前目录生成
pipreqs . --encoding=utf8 --force

使用

pip install -r requirements.txt

管理员权限获取

注意: 无法在Debug中调试该项,请直接通过文件运行

if ctypes.windll.shell32.IsUserAnAdmin():
	# main()
else:
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

python笔记二维码视频数据

若转载请注明出处: 学习Pythonの笔记
本文地址: https://pptw.com/jishu/291393.html
笔记·Python装饰器 Python知识书阅读笔记

游客 回复需填写必要信息