![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
天青如水
这个作者很懒,什么都没留下…
展开
-
win10子系统python开发环境准备----kenlm和nltk的使用
前言因为NLP作业需要用到kenlm,而kenlm在linux下更为方便。本人win10之前开启了子系统,所以就打算在子系统下进行相关作业的完成。首先开启win10子系统,网上教程挺多,照着做就成。我当前安装版本是Ubuntu16.04。终端输入cat /etc/lsb-release或uname可以查看版本。Python的下载Linux中自带python2,不过Pyhton软件基金会宣布...原创 2019-10-12 01:13:57 · 996 阅读 · 3 评论 -
Leetcode刷题---python
最近在用python刷Leetcode,个人把刷题过程中遇到的一些难题记录在博客上,以做复习之用。github刷题链接最长回文子串题目描述:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。class Solution: def longestPalindrome(self, s: str) -> str: r = ''...原创 2019-10-03 15:24:22 · 270 阅读 · 0 评论 -
Anaconda 虚拟环境迁移
需求公司内网无法访问外网,pip可以访问私服,conda 无法创建虚拟环境。因为有用到python2,希望可以使用Anaconda管理pyhton2的虚拟环境。Conda PackConda-pack 是一个命令行工具,用于打包 conda 环境,其中包括该环境中安装的软件包的所有二进制文件。 当您想在有限或没有网络访问的系统中重现环境时,此功能很有用。上面的方法均从其各自的存储库下载软件包以创建环境。而此方法不需要。注意,conda-pack 指定平台和操作系统,目标计算机必须具有与源计算机相同的平原创 2020-12-23 22:10:35 · 1285 阅读 · 0 评论 -
Pythonic
Transforming Code into Beautiful, Idiomatic Python反向遍历集合colors = ['red', 'green', 'blue', 'yellow']for i in range(len(colors)-1, -1, -1): print(colors[i])# betterfor color in reversed(colors): print(color)使用iter()连续调用函数blocks = []while Tr.原创 2020-11-03 23:30:52 · 154 阅读 · 0 评论 -
python 文件备份
#!/usr/bin/env python# -*- coding: utf-8 -*-import osimport timesource = ["./"] # 需要备份的目录target_dir = "./code/" # 保存备份的目录today_dir = target_dir + time.strftime('%Y%m%d')time_dir = time.strftime("%H%M%S")touch = today_dir + os.sep + time_dir +原创 2020-09-14 08:26:37 · 180 阅读 · 0 评论 -
subprocess.Popen 调用缓慢
表现使用 python 的 subprocess.Popen 调用脚本时,发现虽然设置了直接返回状态码,不必等待脚本执行完毕,但依然会有很慢的情况出现,经过排查,发现原因在于fd被多个子进程同时继承导致的。在存在并发的时候, Popen中创建的pipe没有被关闭, 导致父进程认为子进程还没启动成功而一直阻塞。解决方案Popen时加上close_fds=True, 保证fd不会被多个子进程继承。proc = subprocess.Popen( cmd, close_fd原创 2020-09-05 01:36:42 · 2082 阅读 · 0 评论 -
URL之slug处理
为了生成一个可读性更强、对用户和搜索引擎更友好的固定链接,可以考虑把标题转换成英文或拼音,使用处理后的标题(即slug)构建固定链接。import refrom unidecode import unidecode_punct_re = re.compile(r'[\t ! "#$%&\'()*\-/<=>? @\[\\\]^_`{|}, .]+')def slugify(text, delim=u'-'): """Generates an ASCII-only s原创 2020-07-10 00:21:51 · 1514 阅读 · 0 评论 -
win10 Flask-DebugToolbar ValueError: path is on mount ‘c:‘, start on mount ‘D:‘
使用Flask-DebugToolbar包后,报错win10 Flask-DebugToolbar ValueError: path is on mount 'c:', start on mount 'D:'。原因是有些包从C盘导入,当时比较奇怪,我用的anaconda,安装在d盘,所有的包应该导入在d盘。使用print(sys.path)打印后,发现C盘确实下载了一些包,打开看了后,发现应该是在使用jupyter notebook时,下载了一些包。['D:\\ruanjian\\anaconda\原创 2020-07-09 10:50:08 · 2001 阅读 · 1 评论 -
vscode autoppep8 自动格式化,改变import顺序问题
在flask中,经常需要进行一些操作后,再引入包。vscode使用 autoppep8设置保存自动格式化后,会将下面的import放入页面底部。解决办法打开 VSCode 设置,输入python.formatting.autopep8Args,添加["--ignore", "E402"],让 autopep8 忽略 E402,也就是 “模块级别导入不在文件顶部”错误。"python.formatting.autopep8Args": ["--ignore", "E402"]在需要固定位置的原创 2020-07-08 20:56:18 · 5403 阅读 · 0 评论 -
flask-mail 发送带附件的邮件
Flask-Mail包装了Python标准库中的smtplib包,简化了在Flask程序中发送电子邮件的过程。Flask-Mail通过连接SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器来发送邮件。在开始发送电子邮件前,我们需要配置SMTP服务器。在开发和测试阶段,我们可以使用邮件服务提供商的SMTP服务器(比如QQ),这时我们需要对Flask-Mail进行配置。配置邮箱服务器QQ授权码在QQ邮箱设置中进行配置。配置项如下:MAIL_SERVER =原创 2020-07-07 15:52:06 · 1290 阅读 · 0 评论 -
ElasticSearch练习题---python
题目一、雇员表查询1.添加以下三条信息到Elasticsearch,index为megacorp,type为employee,id分别为1,2,3{“first_name” : “John”,“last_name” : “Smith”,“age” : 25,“about” : “I love to go rock climbing”,“interests”: [ “sports”, “music” ]}{“first_name” : “Jane”,“last_name” : “Smi原创 2020-08-15 16:53:14 · 688 阅读 · 0 评论 -
设备管理系统-基于Tkinter的小案例
基于Tkinter,做了一个简易的设备管理系统。文件格式检验文件.txt 文件格式如下:状态获取.txt 文件格式如下:机器名称:测试4号 220V 2.5A代码如下import tkinter as tkimport tkinter.messagebox as msgimport reMachines_list = ['机器名称', '额定电压', '额定电流', '故障原因', '故障名称', '故障地点']# 检验文件路径filepath = '.\检验文件.t原创 2020-06-11 21:48:38 · 1053 阅读 · 1 评论 -
常见爬虫技术
反爬虫技术1.降低请求频率2. 修改请求头3. 禁用Cookie4. 伪装成随机浏览器1)设定浏览器列表2)在中间件UserAgentMiddleware中从浏览器列表中随机获取一个浏览器3)启用中间件UserAgentMiddleware。5.更换IP地址1.降低请求频率对于Scrapy框架来说,在配置文件settings.py中设置DOWNLOAD_DELAY即可。以下代码设置下载延迟时间为3秒,即两次请求间隔3秒。DOWNLOAD_DELAY = 3为了防止请求过于规律,可以使用RANDOM原创 2020-06-04 10:21:02 · 3997 阅读 · 0 评论 -
爬虫小案例
1) 爬取豆瓣电影import requestsimport jsonimport pandas as pdfrom bs4 import BeautifulSoupimport csvimport osimport timeheaders = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 S原创 2020-05-28 15:45:20 · 819 阅读 · 3 评论 -
python--MemoryError: Unable to allocate array with shape
系统环境Ubuntu 16.04.6 LTS(子系统)Python 3.7.3报错原因np.zeros((5684, 15074, 84),dtype=‘float32’)MemoryError: Unable to allocate array with shape (5684, 15074, 84) and data type float32触发了系统的过量处理模式(ove...原创 2019-12-17 23:16:11 · 28864 阅读 · 8 评论 -
numpy
1 函数问题numpy.array和numpy.asarray的区别:array和asarray都可以将结构数据转化为ndarray,但是当数据源为ndarray时,array还是会copy一个副本,而asarray不会。arr1 = np.ones((3,4))arr2 = np.array(arr1)arr3 = np.asarray(arr1)arr2 is arr3 # Fa...原创 2019-12-06 12:14:14 · 79 阅读 · 0 评论 -
python进阶
对象变动foo = ['hello'] print(foo) # Output: ['hello'] bar = foo bar += ['world'] print(foo) # Output: ['hi', 'bye']对可变数据类型而言,每当你将⼀个变量赋值为另⼀个可变类型的变量时,对这个数据的任意改动会同时反映到这两个变量上去。新变量只不过是⽼变量的⼀个别名⽽已。def...原创 2019-11-17 15:31:50 · 158 阅读 · 0 评论 -
用python实现ls命令
学习一下argparse包的用法import argparseimport osimport timeimport prettytable# 定义一个参数解析器parser = argparse.ArgumentParser( prog='ls', usage='pyls.py [-h -a -r]', add_help=True, descripti...翻译 2019-11-16 19:55:47 · 2932 阅读 · 2 评论 -
PIP速查表
python包管理工具:distutils:仅用于打包和安装,严格来讲不算是包管理工具setuptools: distutils的增强版,扩展了distutils,提供更多的功能,引入包依赖的管理。easy_install就是它的一个命令行工具,引入了 egg 的文件格式。Pipenv:一个集依赖包管理(pip)及虚拟环境管理(virtualenv)的工具pip: 官方推荐的包管理工具,...原创 2019-11-10 20:00:12 · 344 阅读 · 0 评论 -
linux matplotlib使用报错
在linux下使用matplotlib展示图像出现以下报错:tkinter.TclError: no display name and no $DISPLAY environment variable官网解释:Many users report initial problems trying to use maptlotlib in web application servers, b...原创 2019-10-13 00:53:45 · 418 阅读 · 0 评论 -
遗传算法-----python
from numpy import randomimport matplotlib.pyplot as pltfrom math import pi, sinimport copyclass Gas(): def __init__(self, popsize, chrosize, xmin, xmax): self.popsize = popsize # 每代...原创 2019-10-10 20:11:42 · 175 阅读 · 0 评论 -
正则表达式
正则表达式的定义正则表达式(regex)是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。通过使用正则表达式,可以:测试字符串内的模式例如,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。替换文本可以使用正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。基于模式匹配从字符串中提...原创 2019-10-09 15:16:19 · 783 阅读 · 0 评论 -
python装饰器
1 装饰器基础知识装饰器是可调用的对象,其参数是另一个函数(被装饰的函数)。装饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用函数@deco 等价于 target = deco(target)def deco(func): def inner(): print('running inner()') func() r...原创 2019-09-30 11:56:38 · 204 阅读 · 0 评论 -
一些python常见的小技巧
一些python常见的小技巧重复元素判定使用set()函数来去除重复元素 def all_unique(lt): return len(lt) == len(set(lt)) a = [1,2,3,4,5,6,7,8,9,8,7,6,5] b = [1,2,3,4,5,6,7,8,9] all_unique(a) # False all_unique(b) # True...原创 2019-09-27 23:25:19 · 259 阅读 · 0 评论 -
DFS和启发式求解八皇后问题---Python
# -*- coding: utf-8 -*-import numpy as npclass eightQueens: def __init__(self): self.board = np.ones([8, 8]) # 解的数量 self.counter = 0 # 当前已经放置的棋子 self....原创 2019-09-24 21:35:56 · 1154 阅读 · 0 评论 -
ipython中使用matplotlib无法显示图
在ipython命令行中使用matplotlib包绘图无法显示,使用%matplotlib inline,发现报错UnknownBackend: No event loop integration for 'inline'. Supported event loops are: qt, qt4, qt5, gtk, gtk2, gtk3, tk, wx, pyglet, glut, osx...原创 2019-07-09 15:23:55 · 1919 阅读 · 2 评论