python3

python3 scrapy

情到浓时终转凉″ 提交于 2020-03-05 16:21:39
scrapy 基础教程 1. 认识Scrapy: 来一张图了解一下scrapy工作流程:(这张图是在百度下载的) scrapy 各部分的功能:   1. Scrapy Engine(引擎): 负责Spider,Item Pipeline,Downloader,Scheduler 中间的通讯,信号,数据传递等   2. Scheduler(调度器): 负责接收引擎发送过来的 request 请求,并按照一定的方式进行整理队列,入队,当引擎需要时,交还给引擎   3. Downloader(下载器): 负责下载 Scrapy Engine(引擎)发送的所有 request 请求,并将其获取到的 response 交还给 Scrapy Engine(引擎),由 引擎 交给spider 来处理   4. Spider(爬虫): 它负责处理所有response,从中分析提取数据,获取item字段需要的数据,并将需要跟进的URL提交个 引擎 再次进入 Scheduler(调度器)   4. Item Pipeline(管道): 它负责处理Spider中获取到的item,并进行后期处理(详细分析,过滤,存储等)的地方   5. Downloader Middlewares(下载中间件): 你可以当作是一个可以自定义扩展下载功能的组件   6. Spider Middlewares

如何自己搭建一个OJ(在线判题系统)?

好久不见. 提交于 2020-03-05 08:14:23
文章目录 1. centOS7/LINUX 云服务器 2. 如何开一个桌面? 2.1. yum groupinstall "X Window System" #X 窗口系统 3. 如何安装python? 4.2.为什么需要pip3? 4.2.1 在命令“pip install docker-compose”中需要pip3.0及其以上 5. 如何安装Docker? 5.2.仓库 5.3 安装Docker Engine-Community和containerd 5.4 启动Docker。 5.5 通过运行hello-world 映像来验证是否正确安装了Docker Engine-Community 。 5.6 参考网站 6. 安装QingdaoU/OnlineJudgeDeploy 6.1.安装必要的依赖 6.1.1. sudo apt-get update && sudo apt-get install -y vim python-pip curl git 6.1.2. pip install docker-compose 6.1.3.问题! 6.1.3.1.这里是通过apt-get安装 而非 yum ##6.1.3.2.我直接讲"apt-get"替换为了"yum"完成了运行 6.1.3.3.我搜索的所有页面对于CentOS安装apt-get都不可行,可能是版本问题 6.2.开始安装

Python3 文件操作

懵懂的女人 提交于 2020-03-04 22:14:24
一 介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分。 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。 有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件的流程: 1、首先找到文件,使用open()函数, a = open("文件路径",“r”) 2、读取文件,使用open()函数的read()方法,data = a.read() 3、关闭文件,使用close()函数,a.close() 实例(Python3.0+): # 1. 打开文件,得到文件句柄并赋值给一个变量 f = open(r'C:\Users\lynn\Desktop\桌面\Python.txt','r',encoding='utf8') # --> 默认打开方式为r # 2. 通过句柄对文件进行操作 print(f.read(3)) # ab床 # 关闭文件 f.close() ''' 过程分析: 1、由应用程序向操作系统发起系统调用open(...) 2、操作系统打开该文件

Python3标准库:calendar处理日期

≡放荡痞女 提交于 2020-03-04 19:46:51
1. calendar处理日期 calendar模块第一了Calendar类,其中封装了一些值的计算,如给定的一个月或一年中的周日期。另外,TextCalendar和HTMLCalendar类可以生成经过预格式化的输出。 1.1 格式化示例 prmonth()方法是一个简单的函数,可以生成月的格式化文本输出。 import calendar c = calendar.TextCalendar(calendar.SUNDAY) c.prmonth(2017, 7) 这个例子按照美国的惯例,将TextCalendar配置为一周从星期日开始。而默认则会使用欧洲惯例,即一周从星期一开始。这个例子会生成以下输出。 利用HTMLCalendar和formatmonth()可以生成一个类似的HTML表格。显示的输出看起来与纯文本的版本大致是一样的,不过会用HTML标记包围。各个表单元格有一个类属性对应星期几,从而可以通过CSS制定HTML的样式。 除了可用的默认格式外,要想以其他的某种格式生成输出,可以使用calendar计算日期,并把这些值组织为周和月区间,然后迭代处理结果。对于这个任务,Calendar的weekheader()、monthcalendar()和yeardays2calendar()方法尤其有用。 调用yeardays2calendar()会生成一个由"月行"列表构成的序列

sys.argv用法简介

落爺英雄遲暮 提交于 2020-03-04 19:26:08
Python3中的sys自带模块中有个argv的方法,这个方法其实作用很简单 主要用在通过python执行xxx.py文件时获取其携带的参数列表。 用一个例子来介绍或许更简单明了吧: 创建一个argv_test.py文件: # _*_ coding: utf-8 _*_ # @File : argv_test.py import sys message = sys.argv print(type(message)) print("sys.argv => %s" % message) 如果直接执行该文件: 结果为: <class 'list'> sys.argv => ['G:/Project Files/Rabbit MQ/argv_test.py'] 可以看出sys.argv的值是一个list列表,由于我们是直接执行结果,并没有在运行这个py文件传参,所以这个列表就是字符串 'G:/Project Files/Rabbit MQ/argv_test.py' 既然是列表我们取索引试试: import sys message = sys.argv[0] print("sys.argv => %s" % message) 结果: sys.argv => G:/Project Files/Rabbit MQ/argv_test.py如果取索引1的话,报错提示 list index out

Mac 10.15 下 python3 安装 cemu

喜欢而已 提交于 2020-03-04 14:19:49
记录一下 arm 汇编神器 cemu 在 mac 上的安装,踩了很多坑 mac 上官网的安装方式 $ brew install capstone $ pip3 install -U cemu 由于 pip 上的的依赖没有更新,在安装时会遇到各种问题,主要就是库找不到,所以需要自己编译需要的库 先看看都需要什么依赖 ❯ pip3 install cemu Requirement already satisfied: cemu in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.5) Requirement already satisfied: capstone>=3.0.4 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from cemu) (4.0.1) Requirement already satisfied: unicorn>=1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/unicorn-1.0.1-py3.7.egg

python3 进程和线程(一)

你说的曾经没有我的故事 提交于 2020-03-04 10:05:10
进程和线程 进程:内存独立,线程共享同一进程的内存,一个进程就像一个应用程序,例如qq和word,这属于两个进程, 进程是资源的集合,线程是执行单位 进程之间不能直接互相访问,同一进程中的程可以互相通信 创建新进程消耗系统资源,线程非常轻量,只保存线程运行时的必要数据,如上下文、程序堆栈信息 同一进程里的线程可以相互控制,父进程可以控制子进程 1 import threading 2 import time 3 4 def sayhi(num): 5 print('num:',num) 6 time.sleep(3) 7 8 a = threading.Thread(target=sayhi,args=(1,)) 9 b = threading.Thread(target=sayhi,args=(2,)) 10 now1 = time.time() 11 print(now1) 12 a.start() 13 b.start() 14 now2 = time.time() 15 print(now2) 16 print(threading.active_count()) 17 # 包含主线程,总共3个 18 print(a.getName()) 19 print(b.getName()) 20 21 class MyThread(threading.Thread): 22 def

pip3安装uwsgi|python3安装|nginx|uwsgi|flask

霸气de小男生 提交于 2020-03-03 19:45:13
pip3安装uwsgi|python3安装 环境/软件版本:centos 7.3,yum安装nginx,yum安装mysql,yum安装python3.4 安装pip3 yum install python34-pip pip3 安装依赖 pip3 install -r requirements 安装python34devel yum install python34-devel 安装uwsgi pip3 install uwsgi 编写test.py测试uwsgi,注意python3和python2的测试方法是不一样的。 def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] # python3 #return ["Hello World"] # python2 启动uwsgi 并访问 测试uwsgi启动项目,项目启动run.py文件代码, #!usr/bin/python # -*- coding: utf-8 -*- from app import app if __name__ == "__main__": app.run() 测试http启动命令,访问端口5000,能够正常访问网站,到此

python3之编码详解

与世无争的帅哥 提交于 2020-03-03 18:27:00
一,python2与python3的区别 1)python2可以不用括号() python3必须加括号 2)python2中有range()有序列表,xrange()生成器 python3中只有range() 3)python2中输入是raw_input() python3中输入是input() 二, = == is 三者的区别 1) = 是赋值   == 是比较,值是否相等 is 比较的是内存地址 id(内容) 打印的是内容的id print(id1(内容),id2(内容))   is 与 == 区别:    is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。 三,小数据池 小数据池是int和str在一定范围内共用一个数据池,范围-1— -256。小数据池是为了节省内存。 1)str:不含有特殊字符的共用 ps: s1 = ‘xiaoming’ s2 = 'xiaoming' print(s1 is s2) 结果是True 2)str: ‘一个字符’*小于等于20的数字,还是共用,如果是大于20的就不共用了。 多个字符不论乘什么数字,都不共用 3)剩下的list dict taple set等都没有小数据池概念 四,编码 ascii码: 只有英文字母和特殊字符,一个字节是8位 unicode码: 一个字符是32位,一个字母4个字节 一个汉字是32位

python基础部分

♀尐吖头ヾ 提交于 2020-03-03 18:21:50
一、基础部分   1.计算机组成:cpu,内存,硬盘,操作系统   2.python类型:解释型(一行一行执行,效率高,跨平台,但运行速度慢)    3.python2和python3的区别:     1)编码。python2默认ascii编码,python3默认utf-8编码。python2 可以首行添加 #-*- encoding:utf-8 -*-解决     2)输入。python2输入raw_input()之后,输入内容可以执行。但python3的输入input,默认输入的类型全部都是str,不可执行,比较安全。     3)输出。python2的输出可以不加括号,但是python3必须加括号。     4)xrange。python2中不仅有range,还有xrange(生成器),python3没有。     ----总结:python3比python2更规范简介,也更安全。   4.python3变量类型:int,str,list,tuple,dictionary,set   5.编码类型。     1)ascii。支持英文、数字、特殊字符。八位一个字节表示一个字符。     2)unicode。升级版之后32位4个字节表示一个字符,无论中英文。     3)utf-8。英文:8位一个字节表示一个字符。          中文:24位三个字节表示一个字符。