无编辑摘要 |
|||
第166行: | 第166行: | ||
==pip 临时指定源== | ==pip 临时指定源== | ||
pip3 install XXX -i https://pypi.mirrors.ustc.edu.cn/simple/ | pip3 install XXX -i https://pypi.mirrors.ustc.edu.cn/simple/ | ||
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ | |||
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ | 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ | ||
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ | |||
不支持http,必须使用https | 不支持http,必须使用https | ||
==time== | ==time== |
2024年3月14日 (四) 11:30的版本
ubuntu将默认使用python2更改为默认使用python3的方法
直接执行这两个命令即可:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
操作剪贴板
import pyperclip pyperclip.copy("写入剪贴板的内容") url =pyperclip.paste() linux error------- Traceback (most recent call last): File "/home/diao/python/qrcode.py", line 7, in <module> url =pyperclip.paste() File "/usr/local/lib/python3.7/dist-packages/pyperclip/__init__.py", line 640, in lazy_load_stub_paste return paste() File "/usr/local/lib/python3.7/dist-packages/pyperclip/__init__.py", line 303, in __call__ raise PyperclipException(EXCEPT_MSG) pyperclip.PyperclipException: Pyperclip could not find a copy/paste mechanism for your system. For more information
解决方法
sudo apt-get install xsel to install the xsel utility. sudo apt-get install xclip to install the xclip utility. pip install gtk to install the gtk Python module. pip install PyQt4 to install the PyQt4 Python module.
解析网页图片
import urllib.request import urllib.parse from bs4 import BeautifulSoup import ssl import os import pyperclip import webbrowser as web
- 从剪贴板获取网页地址
url =pyperclip.paste()
- 关闭证书验证
ssl._create_default_https_context = ssl._create_unverified_context response1 = urllib.request.urlopen(url) str = response1.read() soup = BeautifulSoup(str,"html5lib")
- 解析链接处理相对路径和绝对路径
url_d = urllib.parse.urlparse(url) print(url_d)
- 结果写入html文件
ff = open("pic.html","w")
ff.write("<html><body>
") for img in soup.find_all("img"): ff.write("") ff.write("")else :ff.write("<img src='"+url_d.scheme+"://"+url_d.netloc+"/"+img["src"]+"'>") ff.write("") ff.write("") ff.write("
")
if url_d.scheme == None:ff.write("<img src='"+img["src"]+"'> | "+img["src"]+" | "+url_d.scheme+"://"+url_d.netloc+"/"+img["src"]+" |
</body></html>")
ff.close() pp = os.path.abspath('.')+ "/pic.html"
- 系统默认程序打开html文件
web.open_new('file://'+pp)
使用界面窗口
import tkinter def loadpic(): print("myWindow.quit") w = tkinter.Tk()
- 设置标题
w.title('Python windows')
- 设置窗口大小
#w.geometry('580x800') width = 580 height = 400 screenwidth = w.winfo_screenwidth() screenheight = w.winfo_screenheight() alignstr = '%dx%d+%d+%d' % (width, height, (screenwidth-width)/2, (screenheight-height)/2) #alignstr = (width, height, (screenwidth-width)/2, (screenheight-height)/2) w.geometry(alignstr)
- 设置窗口是否可变长、宽,True:可变,False:不可变
w.resizable(width=True, height=True) tkinter.Button(w, text='Run', command=loadpic).grid(row=0)
- 创建一个标签,显示文本
tkinter.Label(w, text="user-name",bg='red',font=('Arial 12 bold'),width=20,height=5).grid(row=1) logo = tkinter.PhotoImage(file="/Users/diaozhiqiang/python/1.png") tkinter.Label(w, image=logo).pack(side='left').grid(row=2) def showinfo(): # 获取输入的内容 print(entry.get()) text.insert(tkinter.INSERT, entry.get()) entry = tkinter.Entry(win) entry.pack() button = tkinter.Button(win, text="按钮", command=showinfo) button.pack() text = tkinter.Text(win, width=30, height=10) text.pack() w.mainloop()
详细介绍 [1]
将输出写入文件
import tkinter import sys tmp = sys.stdout fp = open("tkinter_help.txt","w") sys.stdout = fp # redirect stdout help(tkinter) sys.stdout = tmp # recover stdout fp.close()
生成二维码
#sudo apt install python3-pip #pip install myqr #sudo apt-get install xclip from MyQR import myqr myqr.run( words='http://www.smypservice.cn' #picture='bg1.jpg', #colorized=True )
- 显示二维码
- windows
import webbrowser webbrowser.open('qrcode.png')
- linux
import matplotlib.pyplot lena = matplotlib.pyplot.imread('qrcode.png') matplotlib.pyplot.imshow(lena) matplotlib.pyplot.axis('off') matplotlib.pyplot.show()
words=text, #在命令后输入链接或者句子作为参数,然后在程序的当前目录中产生相应的二维码图片文件,默认命名为” qrcode.png“ version=1, #设置容错率为最高默认边长是取决于你输入的信息的长度和使用的纠错等级;而默认纠错等级是最高级的H level='H', #控制纠错水平,范围是L、M、Q、H,从左到右依次升高 picture="images/logo.jpg", #用来将QR二维码图像与一张同目录下的图片相结合,产生一张黑白图片 colorized=True, #可以使产生的图片由黑白(False)变为彩色(True)的 contrast=1.0, #用以调节图片的对比度,1.0 表示原始图片,更小的值表示更低对比度,更大反之。默认为1.0。 brightness=1.0, #用来调节图片的亮度,其余用法和取值与 -con 相同 save_name=save_name, #控制文件名,格式可以是 .jpg, .png ,.bmp ,.gif ; save_dir=os.getcwd() + "/images/"
下载文件
import wget
- import os
- import time
- time.sleep(5)
fname = 'qrcode.exe'
- if(os.path.isfile(fname)):
- os.remove(fname)
wget.download('http://www.#########.cn/soft/qrcode.exe', out=fname)
如果目录不存在,创建目录
ie = os.path.exists(path) if not ie: os.makedirs(path)
pip 临时指定源
pip3 install XXX -i https://pypi.mirrors.ustc.edu.cn/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
不支持http,必须使用https
time
import time print(time.time()) print(time.ctime()) time.sleep(1) print(time.strftime('%Y-%m-%d %H:%M:%S'))
django
安装 django
pip3 install django
import django print(django.get_version()) 显示版本号 安装成功
django-admin startproject hello1 创建新项目 python3 manage.py startapp blog 创建blog应用
python3 manage.py runserver 8080 运行 可以指定ip http://127.0.0.1:8080/ 访问
python3 manage.py migrate 创建用户相关表 python3 manage.py createsuperuser 创建超级用户 http://127.0.0.1:8080/admin/ 可以登陆进行用户管理
django 开通blog
在models.py里添加 from django.db import models
- Create your models here.
class Blog(models.Model):
title = models.CharField('标题',max_length = 200) author = models.ForeignKey( 'auth.User',on_delete=models.SET_NULL, null=True,verbose_name='作者' ) content = models.TextField('内容') def __str__(self): return self.title
在admin.py里添加 from django.contrib import admin
- Register your models here.
from blog.models import Blog @admin.register(Blog) class BlogAdmin(admin.ModelAdmin):
pass
在终端执行 python3 manage.py makemigrations python3 manage.py migrade python3 manage.py migrate blog 重新启动出现blog模块 python3 manage.py runserver 8080
django 实现加法函数
python3 manage.py startapp calc #新建app
修改一下 calc/views.py文件 from django.shortcuts import render from django.http import HttpResponse def add(request, a, b):
c = int(a) + int(b) return HttpResponse(str(c))
修改 urls.py 文件 from calc import views as calc_views # new urlpatterns = [
path('admin/', admin.site.urls), path('add/<int:a>/<int:b>/', calc_views.add, name='add'),
]
访问网址http://127.0.0.1:8080/add/232/45/ 得到返回277
目录里生成html文档 方便web服务器下载
import string,os,sys
def list_all_files(dir):
dl = open(os.path.join(dir,'filelist.html'),'w')
dl.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>文件列表</title><body>
') files = os.listdir(dir) for f in files: ff=os.path.join(dir,f) if os.path.isdir(ff): dl.writelines('')list_all_files(ff) else: #print(ff)dl.writelines('') dl.write('
<a href='+f+'/filelist.html>子目录:'+f+'</a> |
<a href='+f+'>'+f+'</a> |
</body></html>')
dl.close()
list_all_files(os.getcwd())
绘制图表
import numpy as np import matplotlib.pyplot as plt
x = np.arange(50) y1 = np.arange(50) for i in range(50):
y1[i] = 2*x[i] + np.random.randint(0,5)
- Adding Text Illustration 1
plt.figure() plt.plot(x,y1) plt.xlabel('Number Line') plt.ylabel('Function') plt.title('Rotating 90 degree') plt.text(30,20,'Matplotlib', rotation=90.)
- Adding Text Illustration 2
plt.figure() plt.plot(x,y1) plt.xlabel('Number Line') plt.ylabel('Function') plt.title('Rotating 180 degree') plt.text(30,20,'Matplotlib', fontsize=15, rotation=180.)
- Adding Text Illustration 3
plt.figure() plt.plot(x,y1) plt.xlabel('Number Line') plt.ylabel('Function') plt.title('Rotating -30 degree') plt.text(30,20,'Matplotlib', fontsize=15, color='g', rotation=-30.)
- Adding Text Illustration 4
plt.figure() plt.plot(x,y1) plt.xlabel('Number Line') plt.ylabel('Function') plt.title('Rotating 45 degree') plt.text(0,80, 'Matplotlib', bbox=dict(facecolor='yellow', alpha=0.5),
fontsize=15, rotation=45.)
plt.savefig('图片.png')#保存图片 plt.show()
压缩和解压文件
压缩 将本目录所有py文件压缩到dd.zip中 python -m zipfile -c dd.zip *.py 解压 将dd.zip解压到dd1目录里 python -m zipfile -e dd.zip dd1
操作excel文件
from openpyxl import Workbook wb = Workbook()
- 创建新的工作表
ws1 = wb.create_sheet("Mysheet") # 默认最后一个 ws2 = wb.create_sheet("first",0) # 一个
- 修改工作表名称
ws1.title = "New Title"
for sheet in wb: print(sheet) ws3 = wb["New Title"] ws3["A4"] = 123 ws1["B5"] = "diao" ws2["c3"] = "写入信息" ws2["c4"] = 12 ws2["c5"] = 13 ws2["c6"] = '=SUM(C4:C5)'
- 添加一行
row = [1,2,3,4,5] ws2.append(row)
- 设置单元格风格--Style
from openpyxl.styles import Font, colors, Alignment
bold_itatic_24_font = Font(name='黑体', size=24, italic=True, bold=True,color = 'FFFF0000') ws2['c3'].font = bold_itatic_24_font
- 对齐方式
ws2['c4'].alignment = Alignment(horizontal='center', vertical='center')
- 第2行行高
ws2.row_dimensions[4].height = 40
- C列列宽
ws2.column_dimensions['C'].width = 30
ws2.merge_cells('B8:d8') # 合并一行中的几个单元格 ws2['b8'] = "合并一行中的几个单元格"
- 保存文件
wb.save('simple_excel.xlsx')
- 读取
from openpyxl import load_workbook #导入模块 wb = load_workbook(filename = "simple_excel.xlsx",data_only=False)
- 打开文件, 默认可读写, 若有需要可以指定 write_only和read_only 为True
- 但是如果是读取的时候需要加上data_only=True 这样读到B9返回的就是数字, 如果不加这个参数, 返回的将是公式本身,如果excle文件没有被打开过,也就是公式没有被计算过,data_only=True会返回None
- 获得最大行和最大列
sheet = wb["first"] # 找到工作表 print(sheet.max_row) print(sheet.max_column)
print(sheet["c3"].value) # 输出内容 print(sheet["c4"].value) # 输出内容 print(sheet["c5"].value) print(sheet["c6"].value)
- 因为按行, 所以返回A1, B1, C1 这样的顺序
for row in sheet.rows: for cell in row: print(cell.value)
- A1, A2, A3 这样的顺序
for column in sheet.columns: for cell in column: print(cell.value)
- 遍历行,对比数据
- se1 = load_workbook(filename = "A01-北京站线上培训名单.xlsx",data_only=False)
se1 = load_workbook(filename = "A02-宁夏站线上培训名单.xlsx",data_only=False)
- se1 = load_workbook(filename = "A03-陕西站线上培训名单.xlsx",data_only=False)
bold_itatic_24_font = Font(name='黑体', size=24, italic=True, bold=True,color = 'FFFF0000') for sheet1 in se1:
print(sheet1) for rn1 in range(1,sheet1.max_row): for sheet in wb: #print(sheet) for rn in range(1,sheet.max_row): if(sheet.cell(rn,7).value == sheet1.cell(rn1,3).value): sheet1.cell(rn1,3).font = bold_itatic_24_font print( sheet1.cell(rn1,3).value) print( sheet1.cell(rn1,8).value) print( sheet1.cell(rn1,9).value)
print(sheet) print( sheet.cell(rn,7).value) print( sheet.cell(rn,8).value) print( sheet.cell(rn,9).value)
se1.save('匹配后列表.xlsx')
绘制数学函数
import numpy as np import matplotlib.pyplot as plt X = np.linspace(-10, 10 * np.pi, 999) YSinValues = np.sin(X) YCosValues = np.cos(3*X) plt.plot(X, YSinValues) plt.plot(X, YCosValues) plt.plot(X,np.log(X)) plt.show()
textToVoice
https://github.com/ranchlai/mandarin-tts
https://github.com/babysor/MockingBird gitee
使用国内源安装,仅支持python3.7-3.9,不能安装最新python
pip3 install torch -i https://pypi.tuna.tsinghua.edu.cn/simple
运行工具箱
python demo_toolbox.py -d .\samples
快速开始 (新手友好版)
本快速开始教程是以Windows为例的,假设不做任何训练(节省几小时甚至几天时间),假设你对python等开发环境也不熟悉,也可能没有支持CUDA的GPU
安装 如果已经确认安装过,请忽略该步骤
拉取本代码库
安装Anacodna, Python 3.8 或更高,参考中文教程,在Anaconda中创建并切换到独立虚拟环境后,进行以下步骤。
安装 PyTorch, 直接官网下载。如果GPU不支持CUDA,请默认选择。
验证本步骤是否成功:在系统任意路径下运行python,进入交互式编程界面后输入 import torch;, 回车, torch.cuda.is_available(), 回车。如果都是成功的话,可以进行下一步。
torch1
安装 ffmpeg。 1)下载 选择点击打开链接Windows对应的版本下载 2)解压 ffmpeg-xxxx.zip 文件到指定目录; 3)将解压后的文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中; 4)进入 cmd,输入 ffmpeg -version,可验证当前系统是否识别 ffmpeg 以及查看 ffmpeg 的版本
运行pip install -r requirements.txt 来安装剩余的必要包。
确保本步骤不报错
安装 webrtcvad 用 pip install webrtcvad-wheels。 确保本步骤不报错
下载社区训练好的模型 在以下选择中下载模型
@miven https://pan.baidu.com/s/1PI-hM3sn5wbeChRryX-RCQ 提取码:2021 https://www.bilibili.com/video/BV1uh411B7AD/ 该模型与最新代码有兼容性问题 请查阅 https://github.com/babysor/MockingBird/issues/37 解决
下载完成后,确保 xxx.pt 格式的文件放在代码库的 synthesizer\saved_models文件夹下,saved_models如不存在请新建
运行demo_toolbox 在代码库路径下,运行 python demo_toolbox.py -d .\samples 尝试使用工具箱, 由于没有下载任何数据集,这里的功能比较简单:
确保界面左边中间的 synthesizer 选择了上一步中 xxx.pt 文件对应的模型。 点击Record录入你的5秒语音 输入任意文字 点击 Synthesizer and vocode 等待效果输出 tool1
使用系统内置朗读文字
pip install pyttsx3 -i https://pypi.tuna.tsinghua.edu.cn/simple sudo apt-get install espeak #inux需要安装
import pyttsx3 eg = pyttsx3.init() eg.setProperty('rate', 180) print(str(eg.getProperty('rate'))) vc = eg.getProperty('voices') #for v in vc: # eg.setProperty('voice', v.id) # print(v.id) #eg.setProperty('voice','com.apple.speech.synthesis.voice.kyoko') #日文 #eg.setProperty('voice','com.apple.speech.synthesis.voice.uciana') #中文女声 eg.setProperty('voice','com.apple.speech.synthesis.voice.meijia') #中文 #eg.setProperty('voice','com.apple.speech.synthesis.voice.noranora') #中文1 #eg.setProperty('voice','com.apple.speech.synthesis.voice.sinji') #中文 粤语 #eg.setProperty('voice','com.apple.speech.synthesis.voice.tingting.yuna') #中文
eg.say("this is a test of raining day,你好,将声音保存到文件中") # print(v.name) eg.runAndWait() eg.stop()
图片文字识别
#替代PIL sudo pip3 install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple sudo pip3 install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple sudo apt install tesseract-ocr
from PIL import Image import pytesseract im = Image.open('aa.png') text=pytesseract.image_to_string(im) print(text)
显示语言包
tesseract --list-langs
下载中文语言包
sudo wget https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata sudo wget https://github.com/tesseract-ocr/tessdata/blob/master/chi_tra.traineddata
使用chromedriver抓去网页
chromedriver下载地址
from selenium import webdriver from selenium.webdriver.chrome.options import Options from time import sleep import sys
#tmp = sys.stdout fp = open("chromedriverOutput.html","w") #sys.stdout = fp souceaddress = 'https://www.lottery.gov.cn/jc/zqgdjj/?m=1012609' print('<html><head><title> chromedriverOutput </title>') print('<meta charset="utf-8" />') print('<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />') print('<link rel="stylesheet" href="chromedriver.css" />') print('</head> <body >') print('<a href="'+souceaddress+'">数据来源网址</a>
') #chrome_opions = Options() #chrome_opions.add_argument("--headless") #chrome_opions.add_argument("--disble-gpu") #driver = webdriver.Chrome("./chromedriver") s = Service(executable_path='./chromedriver.exe') driver = webdriver.Chrome(service=s) #driver = webdriver.Chrome("") driver.get(htmladd) sleep(5) ttaabb = driver.find_element_by_id('table-race') print(ttaabb.get_attribute('innerHTML')) driver.get(souceaddress) sleep(5) ttaacc = driver.find_element_by_id('gdjj_997') print(ttaacc.get_attribute('innerHTML'))
print('</body></html>') sys.stdout = tmp fp.close()
查看chrome://version/ 在chrome浏览器里输入chrome://version/查看版本
下载chromedriver
访问sqlserver数据
import pyodbc
server = 'localhost' database = 'WorkerList' username = 'user' password = 'password' cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) cursor = cnxn.cursor() cursor.execute("SELECT [storeID] ,[storeName] FROM [WorkerList].[dbo].[work_store]")
rows = cursor.fetchall() for row in rows: print(row[0]) print(row[1]) cnxn.commit() cnxn.close()
缩小图片
from PIL import Image
im = Image.open("IMG_0011.JPG") #im.save("IMG_0011-out2.jpg", quality=20) # quality 是压缩比率 w, h = im.size im.thumbnail((w // 4, h // 4)) im.save("girl-out.jpg")
文字表格
from prettytable import PrettyTable row = PrettyTable() row.field_names = ["Name", "Age", "Country", "City"] # 增加表头 row.add_row(['shaw', '23', 'China', 'Shanghai']) # 增加行数据 row.add_row(['charle', '29', 'China', 'Xuzhou']) row.add_row(['jack', '32', 'United States', 'Washington']) print(row)