pip freeze > requirements.txt
从requirements.txt安装依赖库
pip install -r requirements.txt
当提示权限不够时,前面加上sudo
错误提示是Let's Encrypt升级申请协议版本,又有很多使用者不想换高版本的BT。那么可以试一下以下办法。
连接SSH到你的服务器输入以下命令:
/root/.acme.sh/acme.sh --upgrade
版本 v1.7.b
.global.param
文件中添加NETCHK=0
关闭版本 v1.7a
pip freeze > requirements.txt
pip install -r requirements.txt
当提示权限不够时,前面加上sudo
发行版本 v2.18.1. (安装说明)
Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。
警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。
看吧,这就是 Requests 的威力:
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}
Requests 允许你发送纯天然,植物饲养的 HTTP/1.1 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的,一切动力都来自于根植在 Requests 内部的 urllib3。
Requests 完全满足今日 web 的需求。
.netrc
Requests 支持 Python 2.6—2.7以及3.3—3.7,而且能在 PyPy 下完美运行。
这部分文档是以文字为主,从 Requests 的背景讲起,然后对 Requests 的重点功能做了逐一的介绍。
用python下载文件的若干种方法汇总。
import requests
url="******"
try:
r=requests.get(url)
r.raise_for_status() #如果不是200,产生异常requests.HTTPError
r.encoding=r.apparent_encoding
print(r.text)
except:
print("爬取失败...")
import requests
url = 'https://www.python.org/static/img/[email protected]'
myfile = requests.get(url)
open('PythonImage.png', 'wb').write(myfile.content)
用wget
import wget
url = "https://www.python.org/static/img/[email protected]"
wget.download(url, 'pythonLogo.png')
import requests
url = 'https://readthedocs.org/projects/python-guide/downloads/pdf/latest/'
myfile = requests.get(url, allow_redirects=True)
open('hello.pdf', 'wb').write(myfile.content)
import requests
url = 'https://buildmedia.readthedocs.org/media/pdf/python-guide/latest/python-guide.pdf'
r = requests.get(url, stream = True)
with open("PythonBook.pdf", "wb") as Pypdf:
for chunk in r.iter_content(chunk_size = 1024): # 1024 bytes
if chunk:
Pyp
使用文件可以做数据的持久化(本地化)。 包括数据库文件,txt、json,plist,二进制文件等等。
在python中的文件操作很简单,是通过一个内置函数open()实现的。
""" open(file, mode='r', encoding=None, errors=None) open函数主要接收两个参数,需要打开的文件file, 打开方式mode,encoding编码方式, 如果需要忽略少数的如编码之类的错误 可以传入errors="ignore" w 以写方式打开, 文件不存在时创建新文件 a 以追加模式打开,文件不存在时创建新文件 r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打开 (参见 a ) rb+ 以二进制读写模式打开 (参见 r+ ) wb+ 以二进制读写模式打开 (参见 w+ ) ab+ 以二进制读写模式打开 (参见 a+ ) """ f = open(r"./python招聘信息.txt","r",encoding="utf-8") f.read() #以字符串的形式,一次性返回所有文件内容 f.readline() # 读一行,调用一次,读取一行 f.readlines() #返回一个列表,列表的元素是文件中每一行的内容 #f.write() 当以写的形式打开文件时,可以使用该方法,需要传入写入的内容 f.flush() #当需要更新文件的内容时,调用该方法刷新缓存,立即将数据写入文件 f.close() #关闭文件,如果需要向文件中写入内容,在没有flush方法时,调用次方法才能将内容写入
json数据本身是文本数据;json文件就是后缀是.json的文件, 并且文件内容必须满足json格式的要求
1.json格式
a.一个json对应一条数据
b.json中的数据必须是json对应的数据类型
数字类型(number) --> 所有的数字,包含整数和小数,例如:100, 12.5
字符串类型(string) --> 用双引号括其的数据,例如:"abc", "你好,世界!"
数组(array) --> 相当于python中列表, 例如: [100, 230, "abc", "你好"]
# 列表转集合(去重) list1 = [6, 7, 7, 8, 8, 9] set(list1) # {6, 7, 8, 9} #两个列表转字典 list1 = ['key1','key2','key3'] list2 = ['1','2','3'] dict(zip(list1,list2)) # {'key1': '1', 'key2': '2', 'key3': '3'} #嵌套列表转字典 list3 = [['key1','value1'],['key2','value2'],['key3','value3']] dict(list3) # {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'} # 列表、元组转字符串 list2 = ['a', 'a', 'b'] ''.join(list2) # 'aab' tup1 = ('a', 'a', 'b') ''.join(tup1) # 'aab'
# 字典转换为字符串 dic1 = {'a':1,'b':2} str(dic1) # "{'a': 1, 'b': 2}" # 字典key和value互转 dic2 = {'a': 1, 'b': 2, 'c': 3} {value:key for key, value in a_dict.items()} # {1: 'a', 2: 'b', 3: 'c'}
# 字符串转列表 s = 'aabbcc' list(s) # ['a', 'a', 'b', 'b', 'c', 'c'] # 字符串转元组 tuple(s) # ('a', 'a', 'b', 'b', 'c', 'c') # 字符串转集合 set(s) # {'a', 'b', 'c'} # 字符串转字典 dic2 = eval("{'name':'ljq', 'age':24}") # 切分字符串 a = 'a b c' a.split(' ') # ['a', 'b', 'c']
1.首先引入json模块
# 引入json模块 import json
2.转换
#JSON到字典转化: dictinfo = json.loads(json_str) #