1、POST方法-通过接口获取token
import requests
host = '10.12.13.15:8886'
def get_token():
"""获取token的函数"""
url = 'http://' + host + '/oauth/token?v=v5' # 获取token的url
# 接口的传参
params = {
'username': 'bo',
'password': 'ad2ea0b2ff05427cf115f757bd5d3',
'grant_type': 'password'
}
response = requests.post(url, params)
# 检查请求是否成功
if response.status_code == 200:
# 从响应中获取cookie
cookies = response.json()["access_token"]
# 拼接对应鉴权
headers = "Bearer " + cookies
return headers
if __name__ == '__main__':
get_token()
2、连接数据库进行sql查询
import pymysql
def select_allcross(city):
"""数据库查询所在城市的所有路口数据"""
try:
# 连接数据库
db_aitpm = pymysql.connect(host='10.11.13.14', port=8606, user='root', password='2020xmm',db=city, charset='utf8', cursorclass=pymysql.cursors.DictCursor)
# 使用cursor()方法获取操作游标
cursor_aitpm = db_aitpm.cursor()
sql = "SELECT id,name FROM traffic_crossing WHERE use_type='2' and deleted='0'"
# print(sql)
# 执行SQL语句
cursor_aitpm.execute(sql)
# 获取所有记录列表
res = cursor_aitpm.fetchall()
cross_list = {}
if 0 == len(res):
print(city, "无数据")
else:
# 遍历打印每行记录
# print(city, ' 路口总数: ', len(res))
for i in range(len(res)):
# 输出路口ID,调度 和 方案信息
cross_id = res[i]["id"]
cross_name = res[i]["name"]
cross_list[cross_id] = cross_name
cursor_aitpm.close()
# 关闭数据库连接
db_aitpm.close()
return cross_list
except Exception as e:
print(e)
if __name__ == '__main__':
select_allcross('chaoyang')
3、文件的读写
Python 在文件读写操作中,会使用「内置函数」。
内置函数,包括 open()、read()、readline()、readlines()、write()、writelines()、close() 等方法。
在使用「内置函数」的时候,思路基本上是:
1、打开文件
2、开始「读」或者「写」的操作
3、关闭文件
(1)、open() 打开文件
1 def open_method():
2 file = open("test.text", 'r') # open()方法中文件的位置路径,如果是在同级目录下,写文件名称即可;
3 print(file.read()) # 「读」的操作
4 file.close() # 关闭文件
5
6
7 if __name__ == '__main__':
8 open_method()
Python 文件的打开模式,有如下几种,且可以组合使用:
覆盖写入和清空写入的区别:
例如:
原来文件内容是:乱花渐欲迷人眼,浅草才能没马蹄 ;写入的内容是:离离原上草,一岁一枯荣
覆盖写入:现在有多少内容就覆盖原来多少内容;
eg: 修后读出的文件内容就是:离离原上草,一岁一枯荣能没马蹄
清空写入:之前的内容会全部清空;
eg: 修后读出的文件内容就是:离离原上草,一岁一枯荣
(2)、read()、readline()、readlines() 读取数据
①、read()方法
适用场景:当文件很大的时候,单纯使用 read() 方法就很难一次性读入内存中;
1 def read_operate():
2 file = open("test.text", 'r') # 打开文件、只读
3
4 file.read() # read()方法读取文件全部内容
5
6 file.close() # 关闭文件
7
8
9 if __name__ == '__main__':
10 readline_operate()
②、readline()方法
1 def readline_operate():
2 file = open("test.text", 'r') # 打开文件、只读
3
4 line = file.readline() # readline() 读取一行信息
5 print(line)
6
7 file.close() # 关闭文件
8
9
10 if __name__ == '__main__':
11 readline_operate()
③、readlines()方法
使用场景:读取的数据量比较大时
1 def readlines_operate():
2 file = open("test.text", 'r') # 打开文件、只读
3
4 lines = file.readlines() # readlines() 读取全部信息
5 # for 循环 一次读取每一行的内容
6 for line in lines:
7 print(line, end='') # end='' ,关闭默认换行
8 # print(line) # 不加 end='',打印出的每一行内容 默认自动包含换行
9
10 file.close() # 关闭文件
11
12
13 if __name__ == '__main__':
14 readlines_operate()
执行的结果如下:
注意:
读写文件的时候,经常会出现一些 IOError 错误异常,建议写在 try…finally… 异常捕获块中,养成良好的编码习惯。
比如,我们经常执行到最后,会忘记关闭文件,这就很可能会带来很多潜在的问题,可以在 finally 中,也就是程序最后会执行的部分,去关闭我们已打开的文件。
例如:
1 def file_exception_operate():
2 try:
3 file = open("test.text", 'r') # 打开文件、只读
4
5 lines = file.readlines() # readlines() 读取全部信息
6 # for 循环 一次读取每一行的内容
7 for line in lines:
8 print(line, end='') # 依次打印输出每一行数据
9
10 finally:
11 print('文件出问题了')
12 file.close() # 关闭文件
13
14
15 if __name__ == '__main__':
16 readlines_operate()
(3)、write()、writelines() 写入文件
①、write()方法
1 def write_operate():
2 # 写入的内容
3 data = '枯藤老树昏鸦、小桥流水人家、古道西风瘦马;夕阳西下、断肠人在天涯。'
4
5 # 写入文件
6 with open('write_file.txt', 'r+') as file:
7 file.write(data) # 写入一行新数据
8
9
10 if __name__ == '__main__':
11 write_operate()
②、writelines()方法
1 def writelines_operate():
2 # 创建一个列表
3 txtlist = ['枯藤老树昏鸦\n', '小桥流水人家\n', '古道西风瘦马\n', '夕阳西下\n', '断肠人在天涯\n']
4
5 # 写入文件
6 with open('write_file.txt', 'r+') as file:
7 file.writelines(txtlist)
8
9
10 if __name__ == '__main__':
11 write_operate()
(4)、先写入再读取
案例如下:
1 def write_read_operate():
2 # 写入的内容
3 data = '枯藤老树昏鸦、小桥流水人家、古道西风瘦马;夕阳西下、断肠人在天涯。'
4
5 # 写入文件
6 file = open('write_file.txt', 'r+')
7 file.write(data) # 写入一行新数据
8
9 # 读取文件
10 # 写入后的文件,光标会停留在最末尾;读取文件时,会从光标所在位置开始读取;不做任何操作直接读取会读不到内容
11 # 此时调用seek(0)方法,可将光标调至文件最开始的位置,此时读取可读到全部内容。
12 file.seek(0)
13 print(file.read())
14 file.close()
15
16
17 if __name__ == '__main__':
18 write_read_operate()