python相关

Python相关的地址

  1. python官方插件地址 https://www.python.org/
  2. python官方文档 https://docs.python.org/zh-cn/3/
  3. logging日志相关 https://docs.python.org/zh-cn/3/howto/logging.html?highlight=%E6%97%A5%E5%BF%97
    更改显示的日志格式 https://docs.python.org/zh-cn/3/library/logging.html#logrecord-attributes
  4. pytest官方地址 https://docs.pytest.org/en/7.0.x/
  5. requests官方地址 https://docs.python-requests.org/zh_CN/latest/

知识点相关

python连接字符串的几种方式

# 方法一,直接通过 + 号直接连接 不推荐,因为python是弱类型语言,没法判断连接的是不是字符串
website = 'python' + 'tab' + '.com'

# 方法二,join方法,对list的字符进行连接的时候,这种方法必须是首选
listStr = ['python', 'tab', '.com'] 
website = ''.join(listStr)

# 方法三,替换
website = '%s%s%s' % ('python', 'tab', '.com')

# 方法四,两种f替换
a = 'asdf'
print(f'a的内容是: {a}')
这种方法的缺点,如果a中含有转义字符,则会将转义字符进行展示

name = 'Alice'
age = 25
message = "My name is {} and I am {} years old.".format(name, age)

指定变量的位置:
name = 'Bob'
age = 30
message = "My name is {1} and I am {0} years old.".format(age, name)

格式化数字:
pi = 3.1415926
result = "The value of pi is {:.2f}".format(pi)
print(result)
# 输出:The value of pi is 3.14

字符串前加 r’‘, b’‘, u’‘, f’’ 的含义

# r"" 的作用是去除转义字符.如果是“\n”那么表示一个反斜杠字符,一个字母n,而不是表示换行了。
str= r'input\n'
print(str)   ---- >  input\n

# 以 f开头表示在字符串内支持大括号内的python 表达式
import time
t0 = time.time()
time.sleep(1)
name = 'processing'
print(f'{name} done in {time.time() - t0:.2f} s') 

#  b'' 表示这是一个 bytes 对象  网络编程中,服务器和浏览器只认bytes 类型数据
如:send 函数的参数和 recv 函数的返回值都是 bytes 类型
# 在 Python3 中,bytes 和 str 的互相转换方式是
str.encode('utf-8')
bytes.decode('utf-8')

# u"我是含有中文字符组成的字符串。"
后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出现乱码。

读取、写入txt文本内容

python常用的读取文件函数有三种read()、readline()、readlines()
read() 一次性读全部内容:一次性读取文本中全部的内容,以字符串的形式返回结果
readline() 读取第一行内容:只读取文本第一行的内容,以字符串的形式返回结果
readlines() 列表:读取文本所有内容,并且以数列的格式返回结果,一般配合for in使用

with open("test.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一个元素的换行符
        print(line)

写入txt文本

with open("test.txt","w") as f:
    f.write("这是个测试!")  # 自带文件关闭功能,不需要再写f.close()

读写模式
要了解文件读写模式,需要了解几种模式的区别,以及对应指针
r : 读取文件,若文件不存在则会报错
w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件
a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾
rb,wb: 分别与r,w类似,但是用于读写二进制文件
r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖
w+ : 可读,可写,文件不存在先创建,会覆盖

a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾
使用a+时,需要注意:在Python中读取文本使用a+模式打开文本文件,f=open(‘//test’,‘a+’),直接读取文件f.read()返回的数据为空,是因为read方法取到的是光标之后的数据,而a+是追加文本,光标默认在最后,所以取到的数为空,需要使用f.seek(0),将光标移动到下标为0的位置后,再使用f.read()方法就可以取到全部数据。

Request设置cookies

参开文档:https://www.cnblogs.com/ClownAlin/p/13092021.html

# 方法一:cookie是字典格式
import requests
cookies_value = {'name1': 'value1','name2': 'value2'}
response = requests.post(url=url, data=data, cookies=cookies_value)

# 方法二:cookies存放在headers中
header = {"cookie": "cookie_name=cookie_value;cookie_name=cookie_value"}
response = session.post(url=url, headers=header, params=param, data=data )

# 方法三点一:使用session,这种可以避免通过登录接口获取cookie
session = requests.session()
session.cookies['cookie_name'] = "cookies_value"
功能:可以添加cookie,不会清除原有的cookie
缺点:不能设置path,domain
使用:可以在登录时将验证码的Cookie添加进去

# 方法三点二
session = requests.session()
session.cookies.set('cookie_name', "cookie_value", path='/', domain='.abc.com')
功能:设置path、domain等参数
缺点:清除原来的cookies

# 方法三点三,和三点一相同,只不过是cookie的格式为字典
session = requests.session()
requests.utils.add_dict_to_cookiejar(session.cookies, cookie_dict)
功能:可以添加cookie,不会清除原有的cookie
缺点:不能设置path,domain等参数

# 方法三点四
session = requests.Session()
c = requests.cookies.RequestsCookieJar()
c.set('cookie_name', 'cookie_value') #path='/', domain='.abc.com'
session.cookies.update(c)
session.get(url='http://47.107.178.45/phpwind/')

cookie的path和domain属性
  domain表示的是cookie所在的域,默认为请求的地址,如网址为www.test.com/test/test.aspx,那么domain默认为www.test.com。而跨域访问,如域A为t1.test.com,域B为t2.test.com,那么在域A生产一个域A和域B都能访问的cookie将要将该cookie的domain设置为.test.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为t2.test.com。
  path表示cookie所在的目录,asp.net默认为/,就是根目录。在同一个服务器上有目录如下:/test/,/test/ccd/,/test/dd/,现设要给cookie1的path为/test,cookie2的path为/test/cd/,那么test下的所有页面都可以访问到cookie1,而/test/和/test/dd/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。
  浏览器会将domain和path都相同的cookie保存在一个文件里,cookie间用*隔开。含值键值对的cookie:以前一直用的是name=value单键值对的cookie,含多个子键值对的cookie格式是name=key1=value1&key2=value2。

遍历字典中所有的key和value值

a = {'a': '1', 'b': '2', 'c': '3'}

一、遍历字典中的key值
方式一:
for key in a:
    print('key:' + key)
方式二:
for key in a.keys():
	print('key:' + key)

二、遍历字典中的value值
方式一:
for value in a.values():
    print(value)
方式二:
for key in a:
    print(a[key])
    
三、遍历字典中的字典项
for kv in a.items():
    print(kv)
    
四、遍历字典中key和value值
方式一:
for key in a:
    print(key+':'+a[key])
方式二:
for key in a.keys():
    print(key+':'+a[key])
方式三:
for key,value in a.items():
       print(key+':'+value)
方式四:
for (key,value) in a.items():
    print(key+':'+value)

格式化打印 Json

json = {
	"type": "2",
	"selectType": "3"
}
pprint.pprint(json)

request请求格式

request.get(url=url, params={'a':'b'},headers=headers,verify=False)

request.post(url=url, json=json,headers=headers,verify=False)

查看对象的内容地址

id()函数返回对象的“标识符”,这是一个整数,用于唯一标识对象。这个标识符通常是对象的内存地址,但在实践中,您不应该依赖于它的具体含义或行为。

a = 10  
b = 20  
c = a  
  
print(id(a))  # 输出a的ID  
print(id(b))  # 输出b的ID  
print(id(c))  # 输出c的ID,它应该和a的ID相同,因为它们引用的是同一个对象

request上传文件

	files = {'file': open(r'../data/rate-data.xlsx', 'rb')}
	resp = session.post(
		url=f'{domain}/source/upload-create', headers=headers, files=files)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值