近日发现一个 Python 写的文件监控同步程序挂了,检查日志发现报错:[2020-11-17 13:42:20,645 pyinotify ERROR] add_watch: cannot watch /*/*/*/* WD=-1, Errno=No space left on device (ENOSPC)Google 之后发现是系统 watches 配额用尽,需要增大 watches 配额,默认 8192,增大 5 倍试试吧。编辑 sysctl.conf 文件,然后更新:echo fs.inotify.max_user_watches=40960 >> /
Read More →Linux下配置文件“~/.pip/pip.conf”Windows下配置文件“%USERPROFILE%\pip\pip.ini”内容如下:[global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com最后更新pippython -m pip install --upgrade pip
Read More →可以卸载 Ubuntu 16 自带的 Python3.5,然后安装 Python3.8,在卸载的时候会卸载一堆软件包,初步测试发现不会影响基础系统,如果没有特殊需求可以尝试此方案。apt remove python3.5* libpython3.5* apt autoremove dpkg -l |grep ^rc|awk '{print $2}' |xargs dpkg -P add-apt-repository ppa:deadsnakes/ppa apt update apt install python3.8 python3.8-venv pyt
Read More →首先安装 Visual Studio 2019 Community(免费的),必须安装 Python 和 调试器组件。(不用按照我安装的组件来选择,我还开发和调试其他东西,所以还装了其他组件)然后安装 Python 的 ptvsd 包pip/pip3 install ptvsd创建 py 文件import ptvsd ptvsd.enable_attach() #允许调试 ptvsd.wait_for_attach() #等待附加调试器 ptvsd.break_into_debugger()并将此文件在本地保存一个副本执行这个 py 文件,然后返回 VS,选择“调试菜单”下的“附加到进程
Read More →1.创建空字典>>> dic = {} >>> type(dic) <type 'dict'>2.直接赋值创建>>> dic = {'spam':1, 'egg':2, 'bar':3} >>> dic {'bar': 3, 'egg': 2, 'spam': 1}3.通过关键字dict和关键字参数创建>>> dic = dict(spam = 1, egg = 2, bar =3) >>> dic {'bar': 3, 'egg': 2, 'spam': 1}4
Read More →>>> for i in range(1,5): ... for j in range(5,10): ... print(i,j) ... if j==6: ... break ... else: ... continue ... break ... (1, 5) (1, 6) >>>先决条件:在父循环中,子循环之后直接break,所以如果子循环之后还有其他逻辑,则无法使用该方法(局限性较大)。关键点
Read More →import re a = 'abcdefghijklmn' re.findall('.{5}|.+', a)结果:['abcde', 'fghij', 'klmn']注意正则中的'.{5}|.+',把最后不足指定长度5的字符放到数组最后一个元素
Read More →废话不多说,直接上代码。使用了两个包,futures 和 multiprocessing,支持 ThreadPool 和 ProcessPool。怎么区分进程和线程呢,简单的说就是多进程可以在任务列表里看见多个进程,多线程可以在任务列表里看到1个进程有多个线程。#coding:utf-8 from concurrent import futures from multiprocessing.pool import ThreadPool import urllib2 import multiprocessing import os, sys URLS = [ 'http:
Read More →pip install pyflakes echo "import uuid" > test.py pyflakes test.py test.py:1: 'uuid' imported but unused
Read More →1、先看下python 集合 类型的不重复性,这方面做一些去重处理非常的好,比如我们要处理一些数据,想把重复的数据给去掉,然后在操作的话,可以把它转换成集合类型,然后在由集合类型转换成其他的类型。a = [2,3,4,2,1]我们最终要实现的效果是:a = [1,2,3,4]那我们要怎么实现呢。观察下这个列表,我们发现列表里有重复的元素存在,所以我们第一想到的就是去掉列表里的重复元素。a = set(a)print a集合a的结果是:set([1, 2, 3, 4])下一步要实现排序,我们又想到了一个比较简单的方法,因为集合没有排序方法,而列表有排序的方法,所以我们们把它转换成python 列
Read More →