人工智能笔记 https://www.ainote.cc 专注人工智能学习 Fri, 22 Nov 2019 03:45:29 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.6 pycharm3常用快捷键总结 https://www.ainote.cc/pycharm3-shortcuts https://www.ainote.cc/pycharm3-shortcuts#respond Thu, 21 Nov 2019 15:00:31 +0000 http://www.ainote.cc/?p=61 pycharm3常用快捷键总结

提示
CTRL Q: 在参数列表位置,显示可以输入的所有参数。
CTRL Q: 查看选中方法的文档字符串

阅读
CTRL -: 折叠当前代码
CTRL +: 展开当前代码
CTRL SHIFT -: 折叠所有代码
CTRL SHIFT +: 展开所有代码
CTRL SHIFT F7: 将当前单词在整个文件中高亮,F3移动到下一个,ESC取消高亮。
CTRL F11 | F11: 设置书签.
SHIFT F11: 显示所有书签。
CTRL F12: 当一个文件中方法太多,要快速跳到某个方法时,可以用此快捷键打开LIST,
除了用上下箭选择外,还可以输入字母。

移动
ALT UP: 移到上一个方法
ALT DOWN: 移到下一个方法
CTRL B | CTRL 单击: 转到方法定义处
CTRL SHIFT UP: 将当前行上移一行
CTRL SHIFT UP: 将当前行下移一行

SHIFT ENTER: 在行中间执行时,智能跳到下一行。

注释
CTRL /: 注释、取消注释行

选择
ALT 左键: 列模式选择
CTRL W: 选中当前单词,继续按,选中它所属的行/IF/方法.

编辑
CTRL D: 未选中时,复制当前行到下一行,选中时复制粘贴选中部分。
CTRL J: 输入模板

SHIFT F6: 更改变量/方法名字

删除
CTRY Y: 删除当前行

调试
CTRL F8: 设置/取消断点

其它
CTRL E: 最近访问的文件列表
ESC: 焦点从其它窗口到编辑窗口
SHIFT ESC: 隐藏当前窗口,焦点到编辑窗口
F12: 焦点从编辑窗口到上一个使用窗口
编辑器右键,local history, show history: 显示本地修改记录

转载请注明:人工智能笔记 » pycharm3常用快捷键总结

]]>
https://www.ainote.cc/pycharm3-shortcuts/feed 0
python3连接MongoDB(有密码有认证) https://www.ainote.cc/python3-mongodb https://www.ainote.cc/python3-mongodb#respond Thu, 21 Nov 2019 14:55:58 +0000 http://www.ainote.cc/?p=60 python3连接MongoDB(有密码有认证)

#数据写入mongodb
def saveData(data):
    #连接mongodb数据库
    client = MongoClient('mongodb://localhost:27017/')
    # 连接mydb数据库,账号密码认证。先连接系统默认数据库admin
    db = client.admin
    #让admin数据库去认证密码登录
    db.authenticate("root", "root")
    #获取电影数据库test
    my_db = client.test
    #获取集合不存在创建集合
    collection = my_db.movie
    #写入mongodb数据
    try:
        collection.insert_one(data)
    except Exception:
        traceback.print_exc()

一、macos下MongoDB配置账号密码流程

$ brew services start mongodb
$ mongo
> use admin
> db.createUser({ user: "root" , pwd: "root", roles: ["root"]})  # 创建超级用户
> db.auth('root', 'root')  # 验证用户是否设置成功,1为成功
$ vi /usr/local/etc/mongod.conf  # 更改mongodb配置文件
  配置文件开启强制验证,增加如下内容:
  security:
   authorization: "enabled"
$ brew services restart mongodb

二、python连接MongoDB

# -*- encoding: utf-8 -*-
import pymongo

# 账号密码方式连接MongoDB | "mongodb://用户名:密码@公网ip:端口/"
client = pymongo.MongoClient("mongodb://root:root@127.0.0.1:27017/")

# 指定数据库
db = client.test

# 指定集合
collection = db.students

# 插入数据
student = {'id': '20190101', 'name': 'Tom3', 'age': 20, 'gender': 'female'}
ret = collection.insert_one(student)
print('insert_id:', ret.inserted_id)

# 更新数据
condition = {'name': 'Tom3'}
edit = {'age': 21}
ret = collection.update_one(condition, {'$set': edit})
print('update:', ret.matched_count, ret.modified_count)

# 查询
info = collection.find_one(condition)
print('select:', info)

# 计数
count = collection.count_documents({})
print('count:', count)

# 删除数据
ret = collection.delete_one(condition)
print('delete:', ret.deleted_count)

 

转载请注明:人工智能笔记 » python3连接MongoDB(有密码有认证)

]]>
https://www.ainote.cc/python3-mongodb/feed 0
python3使用requests模块get/post/代理/自定义header/自定义Cookie https://www.ainote.cc/python3-requests-header https://www.ainote.cc/python3-requests-header#respond Sat, 21 Sep 2019 04:36:28 +0000 http://www.ainote.cc/?p=45  一、安装requests模块

1.1 适用版本

适用于python2.6、python2.7、python3.4及以上版本,参见官方说明。我这里使用的是当前最新的python3.7。

1.2 安装requests模块

pip install requests
# ubuntu类系统也可以直接用apt安装
# sudo apt-get install python-requests

二、使用requests模块完成各种操作

下边对于https的链接请求时会带上”verify=False“参数,因为默认Python会进行证书校验如果不是信任的证书会报错,带上”verify=False“指示不进行证书校验。

2.1 引用requests模块

import requests

2.2 get请求

import requests

url='https://www.baidu.com'
r = requests.get(url,<span class="n">verify<span class="o">=<span class="kc">False</span></span></span>)
print(r.status_code)

2.3 post请求

import requests

url='https://www.baidu.com'
data='username=ls&password=toor'
r = requests.post(url,data=data,verify=False)
print(r.status_code)

当前很多api是以json形式提交的,所以在使用post的时候我们可能想提交json数据。

提交json有两步:一是data要编码成json形式(python中的字典形式上和json一样但本质上不一样所以要编码),二是设置“Content-type”头的值为application/json(设置头部参见下面2.5,这里先用)

import json
import requests

# 一定要设置Content-Type值为application/json
headers={}
headers['Content-Type']='application/json'

url='https://www.baidu.com'
data={"username":"ls","password":"toor"}
# 一定要用json.dumps把data格式化成json
# r = requests.post(url,headers=headers,data=json.dumps(data),verify=False)
# 或者直接使用json参数代替data,此时requests会自动进行格式化和设置Content-Type头的工作
r = requests.post(url,json=data,verify=False)
print(r.status_code)

为了方便对比验证,另外再附curl post提交的方法:

curl -H "Content-Type:application/json" -X POST --data '{"username": "ls","password":"toor"}' https://www.baidu.com/

2.4 使用代理

import requests

url='http://docs.python-requests.org/en/master/'
proxies={
    'http':'127.0.0.1:8080',
    'https':'127.0.0.1:8080'
}
r = requests.get(url,proxies=proxies)
print(r.status_code)

2.5 自定义header

import requests

url='http://docs.python-requests.org/en/master/'
headers={
    'User-Agent':'self-defind-user-agent',
    'Cookie':'name=self-define-cookies-in header'
}
r = requests.get(url,headers=headers)
print(r.status_code)

2.6 自定义Cookie

实验发现如果自定义header中定义了cookies那么此处设置的cookies不生效

import requests

url='http://docs.python-requests.org/en/master/'
cookies={'name1':'cookie1','name2':'cookies2'}
#cookies=dict(name1='cookie1',name2='cookies2')
r = requests.get(url,cookies=cookies)
print(r.status_code)

2.7 会话保执

经常很多请求只有在登录后才能进行,实现登录效果一般的做法是执行登录请求,然后从返回结果中提取sessionid放入自定义cookie中。

这种方法在requests中也行得通,但requests提供了更为简单的方法,直接使用request.Session类来请求即可,其保持登录的原理是保留之前请求中服务端通过set-cookie等设置的参数。

s = Session()
url='http://docs.python-requests.org/en/master/'
# 所有方法和直接使用requests时一样用即可
s.get(url)

转载请注明:人工智能笔记 » python3使用requests模块get/post/代理/自定义header/自定义Cookie

]]>
https://www.ainote.cc/python3-requests-header/feed 0
pycharm2019 Activation Code https://www.ainote.cc/pycharm2019-activation-code https://www.ainote.cc/pycharm2019-activation-code#respond Wed, 20 Mar 2019 15:05:33 +0000 http://www.ainote.cc/?p=63 python开发工具PyCharm
下载地址:http://www.jetbrains.com/pycharm/download/#section=linux
常用快捷键
格式化:ctrl+alt+i   注释:ctrl+/

Code1:

812LFWMRSH-eyJsaWNlbnNlSWQiOiI4MTJMRldNUlNIIiwibGljZW5zZWVOYW1lIjoi5q2j54mIIOaOiOadgyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNC0yMSIsInBhaWRVcFRvIjoiMjAyMC0wNC0yMCJ9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNC0yMSIsInBhaWRVcFRvIjoiMjAyMC0wNC0yMCJ9LHsiY29kZSI6IkRQTiIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJETSIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDQtMjEiLCJwYWlkVXBUbyI6IjIwMjAtMDQtMjAifSx7ImNvZGUiOiJSUzAiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUkMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUkQiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUEMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiV1MiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiREMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA0LTIxIiwicGFpZFVwVG8iOiIyMDIwLTA0LTIwIn0seyJjb2RlIjoiUlNVIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wNC0yMSIsInBhaWRVcFRvIjoiMjAyMC0wNC0yMCJ9XSwiaGFzaCI6IjEyNzk2ODc3LzAiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-ti4tUsQISyJF/zfWxSHCr+IcYrX2w24JO5bUZCPIGKSi+IrgQ0RT2uum9n96o+Eob9Z1iQ9nUZ6FJdpEW5g0Exe6sw8fLrWMoLFhtCIvVgQxEEt+M7Z2xD0esmjP1kPKXZyc/i+NCxA2EO2Sec9uifqklBGP1L3xoENAw2QsIWBfttIe6EPWhbS8TIMMr2vF/S3HrN8To5Hj5lwD/t1GHgFK1uWrhsuifAiKcVzqogybzGiR1h2+yNYTMbKxP7uPCcdYMsIyrBNVRGA3IuEJgyGQTQlFbnVQoVUTGPW2tQxprmC464wMjKi40JHh27WzjOHPwgzxDaigwn4Z0EbSpA==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQAF8uc+YJOHHwOFcPzmbjcxNDuGoOUIP+2h1R75Lecswb7ru2LWWSUMtXVKQzChLNPn/72W0k+oI056tgiwuG7M49LXp4zQVlQnFmWU1wwGvVhq5R63Rpjx1zjGUhcXgayu7+9zMUW596Lbomsg8qVve6euqsrFicYkIIuUu4zYPndJwfe0YkS5nY72SHnNdbPhEnN8wcB2Kz+OIG0lih3yz5EqFhld03bGp222ZQCIghCTVL6QBNadGsiN/lWLl4JdR3lJkZzlpFdiHijoVRdWeSWqM4y0t23c92HXKrgppoSV18XMxrWVdoSM3nuMHwxGhFyde05OdDtLpCv+jlWf5REAHHA201pAU6bJSZINyHDUTB+Beo28rRXSwSh3OUIvYwKNVeoBY+KwOJ7WnuTCUq1meE6GkKc4D/cXmgpOyW/1SmBz3XjVIi/zprZ0zf3qH5mkphtg6ksjKgKjmx1cXfZAAX6wcDBNaCL+Ortep1Dh8xDUbqbBVNBL4jbiL3i3xsfNiyJgaZ5sX7i8tmStEpLbPwvHcByuf59qJhV/bZOl8KqJBETCDJcY6O2aqhTUy+9x93ThKs1GKrRPePrWPluud7ttlgtRveit/pcBrnQcXOl1rHq7ByB8CFAxNotRUYL9IF5n3wJOgkPojMy6jetQA5Ogc8Sm7RG6vg1yow==

Code2:

6ZUMD7WWWU-eyJsaWNlbnNlSWQiOiI2WlVNRDdXV1dVIiwibGljZW5zZWVOYW1lIjoiSmV0cyBHcm91cCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wOS0wMyIsInBhaWRVcFRvIjoiMjAyMC0wOS0wMiJ9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wOS0wMyIsInBhaWRVcFRvIjoiMjAyMC0wOS0wMiJ9LHsiY29kZSI6IkRQTiIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDktMDMiLCJwYWlkVXBUbyI6IjIwMjAtMDktMDIifSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDktMDMiLCJwYWlkVXBUbyI6IjIwMjAtMDktMDIifSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDktMDMiLCJwYWlkVXBUbyI6IjIwMjAtMDktMDIifSx7ImNvZGUiOiJETSIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDktMDMiLCJwYWlkVXBUbyI6IjIwMjAtMDktMDIifSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwMTktMDktMDMiLCJwYWlkVXBUbyI6IjIwMjAtMDktMDIifSx7ImNvZGUiOiJSUzAiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiUkMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiUkQiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiUEMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiV1MiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiREMiLCJmYWxsYmFja0RhdGUiOiIyMDE5LTA5LTAzIiwicGFpZFVwVG8iOiIyMDIwLTA5LTAyIn0seyJjb2RlIjoiUlNVIiwiZmFsbGJhY2tEYXRlIjoiMjAxOS0wOS0wMyIsInBhaWRVcFRvIjoiMjAyMC0wOS0wMiJ9XSwiaGFzaCI6IjE0Mjg5NzUwLzAiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-Gd8RATyTEnHcAydKuC7N1ZdeLaMP9IR+nlPyVxvLsczAUTGKxcuAYbfz/uVtepg8ey4NfJlPNS+AGcGz8x7ImkX9jEV9KElMxPu3tKSdF/WKo6JCONX7UtudYa/9EQum3banxci/qH7jejSrFZSN+YjWQiYTR0Q8gq4/a2RyQTgseZfpImY/nXkOWLwWArr/p+4ddp/bWQN4nLTW+Z4ZaQeLE96Z9viCdn62EKOcR02Hfr9Oju9VYQh1L8pGrTqNey5nUSv/LQUbVwo5qoYbBRos8l6ewkFNGsuC3vtOgGWSgkgChbDjWhW4Nkm4vDM2NFAphMsS1dgyPw3eJ3C+6A==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQAF8uc+YJOHHwOFcPzmbjcxNDuGoOUIP+2h1R75Lecswb7ru2LWWSUMtXVKQzChLNPn/72W0k+oI056tgiwuG7M49LXp4zQVlQnFmWU1wwGvVhq5R63Rpjx1zjGUhcXgayu7+9zMUW596Lbomsg8qVve6euqsrFicYkIIuUu4zYPndJwfe0YkS5nY72SHnNdbPhEnN8wcB2Kz+OIG0lih3yz5EqFhld03bGp222ZQCIghCTVL6QBNadGsiN/lWLl4JdR3lJkZzlpFdiHijoVRdWeSWqM4y0t23c92HXKrgppoSV18XMxrWVdoSM3nuMHwxGhFyde05OdDtLpCv+jlWf5REAHHA201pAU6bJSZINyHDUTB+Beo28rRXSwSh3OUIvYwKNVeoBY+KwOJ7WnuTCUq1meE6GkKc4D/cXmgpOyW/1SmBz3XjVIi/zprZ0zf3qH5mkphtg6ksjKgKjmx1cXfZAAX6wcDBNaCL+Ortep1Dh8xDUbqbBVNBL4jbiL3i3xsfNiyJgaZ5sX7i8tmStEpLbPwvHcByuf59qJhV/bZOl8KqJBETCDJcY6O2aqhTUy+9x93ThKs1GKrRPePrWPluud7ttlgtRveit/pcBrnQcXOl1rHq7ByB8CFAxNotRUYL9IF5n3wJOgkPojMy6jetQA5Ogc8Sm7RG6vg1yow==

如果提示Activation Code无效,请删除host文件中对jetbrains的屏蔽:

#0.0.0.0 account.jetbrains.com
#0.0.0.0 www.jetbrains.com

转载请注明:人工智能笔记 » pycharm2019 Activation Code

]]>
https://www.ainote.cc/pycharm2019-activation-code/feed 0
python3退出程序sys.exit()方法 https://www.ainote.cc/python3-exit https://www.ainote.cc/python3-exit#respond Wed, 21 Nov 2018 14:37:25 +0000 http://www.ainote.cc/?p=58 1. sys.exit()

执行该语句会直接退出程序,这也是经常使用的方法,也不需要考虑平台等因素的影响,一般是退出Python程序的首选方法.

该方法中包含一个参数status,默认为0,表示正常退出,也可以为1,表示异常退出.

sys.exit() 会抛出一个异常: SystemExit,如果这个异常没有被捕获,那么python解释器将会退出。如果有捕获该异常的代码,那么这些代码还是会执行。

import os,sys
print(1111)
sys.exit(1)
print(2222)
print(3333)
# 1111

import os,sys
try:
    sys.exit(0)  ----  0 和 1 都是一样。
except:
    print('Program is dead.')
finally:
    print('clean-up')
# Program is dead.
# clean-up

2. os._exit()

os._exit() 会直接将python程序终止,之后的所有代码都不会执行,不会抛出异常,但是其使用会受到平台的限制,但我们常用的Win32平台和基于UNIX的平台不会有所影响。

import os,sys
try:
    os._exit(0)
except:
    print('Program is dead.')
finally:
    print('clean-up')

3. os.kill()

一般用于直接Kill掉进程,但是只能在UNIX平台上有效。
基本原理:该函数是模拟传统的UNIX函数发信号给进程,其中包含两个参数:一个是进程名,即所要接收信号的进程;一个是所要进行的操作。
操作(第二个参数)的常用取值为:

SIGINT          中断进程
SIGTERM      软件终止信号
SIGKILL        杀死进程
SIGALRM      闹钟信号

转载请注明:人工智能笔记 » python3退出程序sys.exit()方法

]]>
https://www.ainote.cc/python3-exit/feed 0
Python获取图片位置像素色值及判断色值是否存在 https://www.ainote.cc/python-pic-pixel-check https://www.ainote.cc/python-pic-pixel-check#respond Wed, 10 Oct 2018 10:14:02 +0000 http://www.ainote.cc/?p=42 本文背景:
公司项目的广告系统有个功能,给图片模板打指定的颜色值点,根据需要拼合的图片数量,打点数量也不同。设计说他弄好了,运营上传打点后的模板图片时,获取不到打点的位置坐标。于是找研发看是怎么回事,就有了下面的代码。

涛哥解决这个问题
1、判断设计给模板图片打点的位置和数量是否正确
2、判断打点的颜色值是否正确

解决办法一:

使用ubuntu的gnu图片处理软件打开模板图片,放大就可以看到打点像素位置颜色,再用吸管就能知道打点位置颜色是否正确,打点的位置和数量也一目了然。

解决办法二:

码农自然可以写代码解决,好吧,写段python来解决这个问题吧

checkPic.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
from PIL import Image

# 涛哥用代码看是那的错 https://blog.kydbk.com
img = Image.open("test.png")

# 获取图片尺寸的大小(600,600)
print img.size

# 获取图片的格式 png
print img.format

# 获取图片的图像类型 RGBA
print img.mode

# 显示图片
img.show()

# 获取某个像素位置的值
print img.getpixel((126, 52))

# 生成缩略图
# img.thumbnail((128, 128))

# 保存图片
# img.save('image_thumb.jpg', 'JPEG')

"""
# 获取图片指定像素点的像素
def getPngPix(pngPath = "test.png",x = 1,y = 1):
	img_src = Image.open(pngPath)
	img_src = img_src.convert('RGBA')
	img_array = img_src.load()
	data = img_array[x,y]
	img_src.close()
	return data

# 输入当前位置像素 (207,75,90,255)
print(getPngPix("test.png",126,52))

"""

# 判断某像素值是否在图像中
# 查找目标色值 (1,1,1,255)
# 查找目标色值 (2,2,2,255)
# 查找目标色值 (255,250,250,255)
i = 1
j = 1
result = 0
break_flag = False
width = img.size[0]#长度
height = img.size[1]#宽度
for i in range(0,width):#遍历所有长度的点
    for j in range(0,height):#遍历所有宽度的点
        #每个像素点的颜色RGBA的值(r,g,b,alpha)
        data = (img.getpixel((i,j)))#打印该图片的所有点
        # 判断RGBA的值
        if (data[0]==255 and data[1]==250 and data[2]==250):
        # if (data[0]==207 and data[1]==75 and data[2]==90):
        	result = 1
        	print"图片中存在该像素!"
        	break_flag = True
        	break
        if break_flag==True:
            break
    if break_flag==True:
        break        	
if(result == 0):
	print"图片中不存在该像素!"

"""
data = (img.getpixel((i,j)))#打印该图片的所有点
print (data)#打印每个像素点的颜色RGBA的值(r,g,b,alpha)
print (data[0])#打印RGBA的r值
if (data[0]>=170 and data[1]>=170 and data[2]>=170):#RGBA的r值大于170,并且g值大于170,并且b值大于170
    img.putpixel((i,j),(234,53,57,255))#则这些像素点的颜色改成大红色
    img = img.convert("RGB")#把图片强制转成RGB
    img.save("e:/pic/testee1.jpg")#保存修改像素点后的图片
"""

图片扔目录里直接判断是否颜色打正确了,问题解决…
更多待涛哥学习实践总结分享….

转载请注明:人工智能笔记 » Python获取图片位置像素色值及判断色值是否存在

]]>
https://www.ainote.cc/python-pic-pixel-check/feed 0
python3.x的除法、向上向下取整及四舍五入 https://www.ainote.cc/python3-math-ceil https://www.ainote.cc/python3-math-ceil#respond Fri, 21 Sep 2018 14:41:00 +0000 http://www.ainote.cc/?p=59 一、除法的运算
‘/’ 无论是否整除返回的都是 float ,暂且叫它精确除法
例如 : 10/5,的到的结果是 2.0
‘//’ 无论是否整除返回的都是 int ,而且是去尾整除
例如 :5//2,得到的结果是 2
‘%’ 是取余运算,返回两个余数,经常在判断是否整除上运用
例如 :5%2,得到的结果是 1

二、向上向下取整(要先导入模块 math )
向上取整
math.ceil()
返回值为 int
向下取整
math.floor()
返回值为 int

三、四舍五入
内置函数 round()
返回值为 int

 

转载请注明:人工智能笔记 » python3.x的除法、向上向下取整及四舍五入

]]>
https://www.ainote.cc/python3-math-ceil/feed 0
Python中Requests简单运用学习 https://www.ainote.cc/python-requests https://www.ainote.cc/python-requests#respond Tue, 13 Feb 2018 08:03:52 +0000 http://www.ainote.cc/?p=37 Requests简介

Requests 是使用 Apache2 Licensed 许可证的 HTTP 库。比Python 标准库中的 urllib2 模块功能强大。

Requests 使用的是 urllib3,因此继承了它的所有特性。Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。

功能特性

Requests 完全满足如今网络的需求。

  • 国际化域名和 URLs
  • Keep-Alive & 连接池
  • 持久的 Cookie 会话
  • 类浏览器式的 SSL 加密认证
  • 基本/摘要式的身份认证
  • 优雅的键/值 Cookies
  • 自动解压
  • Unicode 编码的响应体
  • 多段文件上传
  • 连接超时
  • 支持 .netrc
  • 适用于 Python 2.6—3.4
  • 线程安全

牛刀小试

>>> import requests
>>> r = requests.get('http://www.baidu.com')   # 发送请求
>>> r.status_code                               # 网页状态码
200
>>> r.headers['content-type']                  #响应头内容
'text/html; charset=utf-8'
>>> r.encoding                                 #获取网页编码
'utf-8'
>>> r.text                                     #获取响应网页的内容
'...

为URL传递参数

>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.get("http://httpbin.org/get", params=payload)
>>> r = requests.post("http://httpbin.org/post", data=payload)
>>> print r.text

超时

你可以告诉requests在经过以 timeout 参数设定的秒数时间之后停止等待响应:

>>> requests.get('http://github.com', timeout=0.001)
Traceback (most recent call last):
  File "", line 1, in 
requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)

代理

如果需要使用代理,你可以通过为任意请求方法提供 proxies 参数来配置单个请求:

import requests

proxies = {
  "http": "http://10.10.1.10:3128",
  "https": "http://10.10.1.10:1080",
}

requests.get("http://example.org", proxies=proxies)

错误与异常

遇到网络问题(如:DNS查询失败、拒绝连接等)时,Requests会抛出一个 ConnectionError 异常。
遇到罕见的无效HTTP响应时,Requests则会抛出一个 HTTPError 异常。
若请求超时,则抛出一个 Timeout 异常。
若请求超过了设定的最大重定向次数,则会抛出一个 TooManyRedirects 异常。
所有Requests显式抛出的异常都继承自 requests.exceptions.RequestException 。

更多介绍可参考官方文档

转载请注明:人工智能笔记 » Python中Requests简单运用学习

]]>
https://www.ainote.cc/python-requests/feed 0
Python实现网页爬虫常用代码总结 https://www.ainote.cc/python-web-spider-code https://www.ainote.cc/python-web-spider-code#respond Tue, 13 Feb 2018 07:38:39 +0000 http://www.ainote.cc/?p=31 //获取网页源代码的方法

import urllib.request

def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html

#getHtml()内输入任意的URL ------
html = getHtml("http://www.somy86.com")
#修改html对象内的字符编码为UTF-8
html = html.decode('UTF-8')
print(html)

//下载图片代码

import requests
 
html = requests.get('http://www.ainote.cc/wp-content/themes/zblog/img/logo.png')
with open('/home/sam/python/cs/images/1.jpg', 'wb') as file:
    file.write(html.content)

//获取贴子内所有图片

import re
import urllib.request

#获取网页源代码的方法
def getHtml(url):
    page = urllib.request.urlopen(url)
    html = page.read()
    return html

#getHtml()内输入任意的URL
html = getHtml("https://tieba.baidu.com/p/5352556650")
#修改html对象内的字符编码为UTF-8
html = html.decode('UTF-8')

#获取帖子内所有图片地址的方法
def getImg(html):
    #利用正则表达式匹配网页内容找到图片地址
    reg = 'src="([.*\S]*\.jpg)"'
    imgre = re.compile(reg);
    imglist = re.findall(imgre, html)
    return imglist

imgList = getImg(html)
imgName = 0
for imgPath in imgList:
    #这里使用异常处理及多线程编程方式
    try:
        f = open('D:\\Temp\\'+ str(imgName)+".jpg", 'wb')
        f.write((urllib.request.urlopen(imgPath)).read())
        print(imgPath)
        f.close()
    except Exception as e:
        print(imgPath+" error")
    imgName += 1

print("All Done!")

 

转载请注明:人工智能笔记 » Python实现网页爬虫常用代码总结

]]>
https://www.ainote.cc/python-web-spider-code/feed 0
Python3-pyqt5安装与使用 https://www.ainote.cc/python3-pyqt5%e5%ae%89%e8%a3%85%e4%b8%8e%e4%bd%bf%e7%94%a8 https://www.ainote.cc/python3-pyqt5%e5%ae%89%e8%a3%85%e4%b8%8e%e4%bd%bf%e7%94%a8#respond Mon, 12 Feb 2018 08:25:33 +0000 http://www.ainote.cc/?p=28 Python3-pyqt5安装与使用

sudo apt install python3-pyqt5

 

转载请注明:人工智能笔记 » Python3-pyqt5安装与使用

]]>
https://www.ainote.cc/python3-pyqt5%e5%ae%89%e8%a3%85%e4%b8%8e%e4%bd%bf%e7%94%a8/feed 0