按月归档: 4 月 2023

怎么查看Python pip扩展库所有可用安装版本

C:\Users\jwp>pip install -i https://pypi.tuna.tsinghua.edu.cn/simple moviepy==10000
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
ERROR: Could not find a version that satisfies the requirement moviepy==10000 (from versions: 0.2.1.6.3.linux-i686, 0.2.1, 0.2.1.1, 0.2.1.2, 0.2.1.3,
0.2.1.4, 0.2.1.5, 0.2.1.6, 0.2.1.6.1, 0.2.1.6.2, 0.2.1.6.3, 0.2.1.6.4, 0.2.1.6.5, 0.2.1.6.7, 0.2.1.6.8, 0.2.1.6.9, 0.2.1.6.91, 0.2.1.6.92, 0.2.1.6.93,
0.2.1.7, 0.2.1.7.2, 0.2.1.7.3, 0.2.1.7.8, 0.2.1.7.9, 0.2.1.7.10, 0.2.1.7.11, 0.2.1.7.12, 0.2.1.7.13, 0.2.1.7.14, 0.2.1.7.15, 0.2.1.7.16, 0.2.1.7.17,
0.2.1.7.18, 0.2.1.7.19, 0.2.1.7.20, 0.2.1.7.21, 0.2.1.7.22, 0.2.1.8, 0.2.1.8.1, 0.2.1.8.2, 0.2.1.8.3, 0.2.1.8.4, 0.2.1.8.5, 0.2.1.8.6, 0.2.1.8.7, 0.2.
1.8.8, 0.2.1.8.9, 0.2.1.8.10, 0.2.1.8.11, 0.2.1.8.12, 0.2.1.9, 0.2.1.9.1, 0.2.1.9.2, 0.2.1.9.3, 0.2.1.9.4, 0.2.1.9.5, 0.2.1.9.7, 0.2.2, 0.2.2.1, 0.2.2
.2, 0.2.2.3, 0.2.2.4, 0.2.2.5, 0.2.2.6, 0.2.2.7, 0.2.2.8, 0.2.2.9, 0.2.2.10, 0.2.2.11, 0.2.2.12, 0.2.2.13, 0.2.3.1, 0.2.3.2, 0.2.3.3, 0.2.3.4, 0.2.3.5
, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 2.0.0.dev1, 2.0.0.dev2)
ERROR: No matching distribution found for moviepy==10000

python flask 获取 get post 参数

from flask import Flask, jsonify
from flask import request
app = Flask(__name__)

@app.route(‘/’, methods=[‘GET’, ‘POST’])
def hello_world():
print(‘请求方式为——->’, request.method)
args = request.args.get(“name”) # 获取 get 参数
form = request.form.get(‘data’) # 获取 post 参数
# main(form) # 调用我们的逻辑函数
get_html(form)
print(“=========成功 生成 index.html================”)
return jsonify(args=args, form=form)

if __name__ == ‘__main__’:
app.run(host=”0.0.0.0″, port=5800, debug=True)

Python 目录文件夹路径操作,读取获取,创建,判断是否存在 os.mkdir(),os.path.exists(),os.getcwd(), os.chdir

os.path.exists(),os.getcwd(), os.chdir

vim ostest.py

import os

if not os.path.exists(‘testos’):

os.mkdir(‘testos’) #如果没有则建立文件路径

print (os.getcwd())

os.chdir(‘/’)

print os.getcwd()

——————

创建目录

在Python中可以使用os.mkdir()函数创建目录(创建一级目录)。

其原型如下所示:

os.mkdir(path)

其参数path 为要创建目录的路径。

例如要在D盘下创建hello的目录

>>> import os

>>> os.mkdir(‘d:\hello’)

可以使用os.makedirs()函数创建多级目录。

其原型如下所示:

os.makedirs(path)

其参数path 为要创建目录的路径。

如在D盘下创建books的目录,books目录下在创建book目录

>>> import os

>>>os.makedirs(‘d:\\books\\book’)

———————–

os.path.exists():判断文件是否存在

————————

os.getcwd():用于返回当前工作目录。 参数:无; 返回值:返回当前进程的工作目录

os.chdir(path):用于改变当前工作目录到指定的路径。格式:os.chdir(path):其中path为切换到的新路径。

pipreqs(找当前项目依赖的包)生成requirements.txt文件

pipreqs(找当前项目依赖的包)

1.安装

pipreqs可以帮你找到当前项目的所有组件及其版本。就是当别人给你一个程序的时候,你要在自己电脑上运行起来,就需要安装程序所依赖的组件,总不能自己一个一个找吧。

# 安装
pip3 install pipreqs

2.使用步骤

# 使用步骤
1.在项目根目录下执行命令
pipreqs ./ –encoding=utf-8
2.可以看到生成了requirements.txt文件
3.执行下面代码就会把项目用到的所有组件装上
pip3 install -r requirements.txt

3.效果

# requirements.txt
Flask_Migrate==2.3.1
redis==3.0.1
Flask==1.0.2
alembic==1.0.7
Flask_Script==2.0.6
Flask_SQLAlchemy==2.3.2
Flask_Session==0.3.1
SQLAlchemy==1.2.17

Python 截取字符串的方法

Python 提供了很多截取字符串的方法,被称为“切片(slicing)”。

模版如下:

string[start: end: step]
其中,

start:起点位置,子字符串的起始索引。该索引处的字符包含在子字符串中。start 为空时则默认为 0。

end:终点位置,子字符串的终止索引。该索引处的字符不包括在子字符串中。end 为空时,或者指定的值超过字符串的长度,则默认它等于字符串的长度。

step:步长,当前字符之后和目标字符之间的距离。step 为空时,则默认值为 1。

模版

string[start:end]:获取从 起点位置 到 终点位置 – 1 的所有字符

string[:end]:获取从 字符串开头 到 终点位置 – 1 的所有字符

string[start:]:获取从 起点位置 到字符串结尾的所有字符

string[start:end:step]:获取从 起点位置 到 终点位置 – 1 的,每个之间距离 步长 的所有字符

示例

获取字符串的前 5 个字符
string = “freeCodeCamp”
print(string[0:5])
输出:

> freeC
注意:print(string[:5]) 和 print(string[0:5]) 返回的结果一样

获取从第 3 个字符开始,长度为 4 的截取字符串
string = “freeCodeCamp”
print(string[2:6])
输出:

> eeCo
请注意,起点或终点位置索引可能为负数。负索引的意思是从字符串的末尾开始而不是从开头开始(即从右到左)开始计数。索引-1 代表字符串的最后一个字符,-2 代表倒数第二个字符,依此类推……

获取字符串的最后一个字符
string = “freeCodeCamp”
print(string[-1])
输出:

> p
获取字符串的末尾 5 个字符
string = “freeCodeCamp”
print(string[-5:])
输出:

> eCamp
获取一个截取字符串,包括除了末尾 4 个和开头第一个字符的所有字符
string = “freeCodeCamp”
print(string[1:-4])
结果:

> reeCode
更多示例

str = “freeCodeCamp”

print str[-5:-2] # prints ‘eCa’
print str[-1:-2] # prints ‘’ (empty string)
每个字符之间间隔一个索引
string = “freeCodeCamp”
print(string[::2])
结果:

> feCdCm

python 排序 sort和sorted的区别,使用和坑

python sort和sorted的区别,使用和坑

sort和sorted区别:

(本文根据B站up主码农高天的视屏整理)

sort跟sorted都是python自带的排序函数,两者的使用方法基本一致。
最大的区别是sort会改变原有列表,而sorted不会改变原有列表并且会返回一个新列表。

sort 和sorted的使用:

a = [1,25,2,5,4,3,6]
b = sorted(a)
print(a)
print(b)
a.sort()
print(a)

打印结果如下,sort改变了原有列表,而sorted没有

我们在使用sort和sorted的时候可以搭配匿名函数使用,这种方法使用的频率较高,一定要掌握

# lst[lst] with sort
a = [[‘xueling’,0],[‘yujie’,2],[‘aitty’,1],[‘xls’,2]]
a.sort(key=lambda x:x[1],reverse=True)
print(a)
# 通过匿名函数来指定key,实现对lst中第二项进行排序

运行结果: [[‘yujie’, 2], [‘xls’, 2], [‘aitty’, 1], [‘xueling’, 0]]

往高处延伸

有时候我们会遇到两次排序的问题:
1,先根据数的次数进行排序
2,当数字相同时根据数的大小从大到小进行排序

我们可以这样写:

b = [2,3,3,2,3,1,4]
b = sorted(b,key=lambda x:(b.count(x),x),reverse=True)
print(b)

运行结果:[3, 3, 3, 2, 2, 4, 1]

sort 的坑

当然,我们也可以用sort来写

b.sort(key=lambda x:(b.count(x),-x))
print(b)

运行结果:[4, 3, 3, 3, 2, 2, 1]
我们发现使用sort运行的结果是错误的,这其实是sort本身编写的问题,涉及底层的架构,所以我们在写sort发现错误的时候,可以尝试把它改写成sorted来判断是不是我们代码本身的错误,sorted是不会错的。

这种错误,其实只会在sort二次排序时才会出现,像key=lambda x:x[1]这样的是不会出现排序错误的。
sort的这种错误,可以说是python的一个bug吧。

Python 正则表达式匹配中文

# 测试匹配中文信息
def TestReChinese( ):
source = u” 数据结构模版—-单链表SimpleLinkList[带头结点&&面向对象设计思想](C语言实现)”
temp = source.decode(‘utf8’)
print “同时匹配中文英文”
print “————————–”
xx = u”([\w\W\u4e00-\u9fff]+)”
pattern = re.compile(xx)
results = pattern.findall(temp)
for result in results:
print result
print “————————–”
print
print
print “只匹配中文”
print “————————–”
xx = u”([\u4e00-\u9fff]+)”
pattern = re.compile(xx)
results = pattern.findall(temp)

for result in results:
print result
print “————————–”

if __name__ == “__main__” :
# 测试正则表达式

reload(sys)
sys.setdefaultencoding(“utf-8”)

TestReChinese( )