目录
写爬虫的时候整理了一些,每次看的时候去扒不是很方便,单独拎出来整理下
数组合并/追加
list = []
list2 = []
node = {}
...
list.append(list2)
list2.append(node)obiect转str类型
- object.__str__().replace("{'", "").replace("'}", "")
- str(x) 将对象 x 转换为字符串
arr数组转字符串
- ['xxxxxxxxxxxx'].__str__().replace("['", "").replace("']", "") 仅限['xxxxxxxxxxxx'])
- str(x) 将对象 x 转换为字符串
- str(arr).replace("[", "").replace("]", "")
自定义保存页面图片
def loadPage(img_url): response = requests.get(img_url) return response.content # 自定义保存页面图片函数 def getImage(image_url): # print("image_url= {}".format(image_url)) if image_url is None: return "" if len(image_url) <= 10: return "" name = image_url.split("/")[len(image_url.split("/"))-1] fth = "image/{}".format(name) img = loadPage(image_url) with open(fth, "wb") as f: f.write(img) return fth
字符串去空格
def strStrip(string): string = string.replace('\n', '').replace('\r', '').replace('\t', '').strip() string = string.replace("'", "").replace('\\n', '').replace('\\r', '').replace('\\t', '') return string
python 文件读写(追加、覆盖)
- 写json到本地write_json a持续写入
def write_json(content): with open('XueWei.txt', 'a', encoding='utf-8') as fObj: split = ",\n" json.dump(content, fObj, ensure_ascii=False) fObj.write(split) fObj.close()
- 写文本到本地 a持续写入
def write(content): split = "\n" f = open(file_path, 'a', encoding='utf-8') # 写入数据 f.write(content) f.write(split) # 关闭文件 f.close()
toString且' 转 "
# ' 转 " def toString(obj): return obj.__str__().replace("'", "\"")
int拼接组装
# return int 11 + 11 = 1111 def addInt(first, end): return int(first.__str__() + end.__str__())
字符串拼接组装,并用符号分割
# return String addStr("第一部", ",", "第二部") def addStr(first, sp, end): if len(first.__str__()) <= 0: return end.__str__() return first.__str__() + sp + end.__str__()
python类型转换
- type("21") 获取类型
- int("23") 字符串转换成int数字
- item['name'] 取对象里key为name的值
- num=322
- str='%d'%num 数字转换成字符串
# int(x[, base]) 将x转换为一个整数,base为进制,默认十进制 # # long(x[, base] ) 将x转换为一个长整数 # # float(x) 将x转换到一个浮点数 # # complex(real[, imag]) 创建一个复数 # # str(x) 将对象 x 转换为字符串 # # repr(x) 将对象 x 转换为表达式字符串 # # eval(str) 用来计算在字符串中的有效Python表达式, 并返回一个对象 # # tuple(s) 将序列 s 转换为一个元组 # # list(s) 将序列 s 转换为一个列表 # # set(s) 转换为可变集合 # # dict(d) 创建一个字典。d 必须是一个序列(key, value) 元组。 # # frozenset(s) 转换为不可变集合 # # chr(x) 将一个整数转换为一个字符 # # unichr(x) 将一个整数转换为Unicode字符 # # ord(x) 将一个字符转换为它的整数值 # # hex(x) 将一个整数转换为一个十六进制字符串 # # oct(x) 将一个整数转换为一个八进制字符串
删除html多余标签内的内容
# 删除某个属性 doc('.article-t style').remove() # 清楚多余的标签,只保留纯文本 from w3lib.html import remove_tags a = '<em><em>ai</em></em>工程师' print(remove_tags(a))
html转字符串:
# 网页属性里的双引号转单引号 html.__str__().replace('"', "'")
对象转json:
![]()
import json json.loads() 将json转换为dict json.dumps() 将dict转换为json json.load() 将json文件转换为dict json.dump() 将dict转换为json文件 person.json # 类对象转换为json person_json = json.dumps(person.__dict__) # 或者 # 第二个参数传递转换函数,或者使用default=lambda o: o.__dict__ person_json = json.dumps(person, default=convert2json) # 将person转换为dict def convert2json(person): return { 'name': person.name, 'age': person.age, 'email': person.email } # dict/对象转换为json文件 with open('person.json', 'w') as f: json.dump(person, f) # 将json文件转换为dict/对象 import json with open('person.json', 'r') as f: print(json.load(f))
python json.dumps() 中文乱码问题
json.dumps 序列化时默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:更深入分析,是应为
dJSON
object 不是单纯的unicode实现,而是包含了混合的unicode编码以及已经用utf-8编码之后的字符串。写法:
Python2 :json.dumps(odata, ensure_ascii=False).decode('utf8') json.dumps(odata,ensure_ascii=False).decode('utf8').encode('gb2312') Python3 :json.dumps(odata, ensure_ascii=False)
Python 读取文件,文件读取全部/一行
file = open("readme.txt") while True: text = file.readline() # 只读取一行内容 # 判断是否读取到内容 if not text: break # 每读取一行的末尾已经有了一个 `\n` print(text,end="") file.close()
- 逐行读取文件:(简洁)
f = open("test.txt", "r")
for x in f:
print(x)
- 读全部
f = open("test.txt", "r")
print(f.read())
- 读取文件的前10个字符
f = open("test.txt", "r")
print(f.read(10))字符串分割
str.split(
'>>>'
)
异常处理(Try…Except)
try
块让你可以检测代码块中的错误。
except
块让你可以处理错误。
finally
块让你可以执行最终代码,不管try
与except
块的结果如何,finally
块的代码都将执行。try: print(x) except: print("发生异常") #------------ try: print("你好") except: print("出错了") else: print("正常") #------------ try: print(x) except: print("except出错了") finally: print("finally")
Python控制鼠标点击
import pyautogui # 用0.5 秒的时间把光标移动到x,y(437, 151) 位置,y竖向向下增加 pyautogui.moveTo(437, 151, duration=0.5) pyautogui.click() pyautogui.click(350, 190, button ='left')# 左击 pyautogui.click(350, 190, button ='right')# 右击
python连接数据库
pyton连接数据库需要先安装pymysql模块:pip install pymysql 安装完成后导入pymysql模块:import pymysql python连接数据库主要分五个步骤: step1:连接数据库 step2:创建游标对象 step3:对数据库进行增删改查 step4:关闭游标 step5:关闭连接 # 1. 连接数据库, conn = pymysql.connect( host='localhost', user='root', password='redhat', db='helloTest', charset='utf8', # autocommit=True, # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。 ) # ****python, 必须有一个游标对象, 用来给数据库发送sql语句, 并执行的. # 2. 创建游标对象, cur = conn.cursor() # 3. 对于数据库进行增删改查 # 1). ************************创建数据表********************************** try: create_sqli = "create table hello (id int, name varchar(30));" cur.execute(create_sqli) except Exception as e: print("创建数据表失败:", e) else: print("创建数据表成功;") ## 2). *********************插入数据**************************** try: insert_sqli = "insert into hello values(2, 'fensi');" cur.execute(insert_sqli) except Exception as e: print("插入数据失败:", e) else: # 如果是插入数据, 一定要提交数据, 不然数据库中找不到要插入的数据; conn.commit() print("插入数据成功;") # 3). *********************插入多条数据**************************** try: info = [(i, "westos%s" %(i)) for i in range(100)] # *********************第一种方式******************** # %s必须手动添加一个字符串, 否则就是一个变量名, 会报错. insert_sqli = "insert into hello values(%d, '%s');" for item in info: print('insert语句:', insert_sqli %item) cur.execute(insert_sqli %item) # *********************第二种方式******************** insert_sqli = "insert into hello values(%s, %s);" cur.executemany(insert_sqli, info ) except Exception as e: print("插入多条数据失败:", e) else: # 如果是插入数据, 一定要提交数据, 不然数据库中找不到要插入的数据; conn.commit() print("插入多条数据成功;") # 4). **************************数据库查询***************************** sqli = "select * from hello;" result = cur.execute(sqli) # 默认不返回查询结果集, 返回数据记录数。 print(result) print(cur.fetchone()) # 1). 获取下一个查询结果集; print(cur.fetchone()) print(cur.fetchone()) print(cur.fetchmany(4)) # 2). 获取制定个数个查询结果集; info = cur.fetchall() # 3). 获取所有的查询结果 print(info) print(len(info)) print(cur.rowcount) # 4). 返回执行sql语句影响的行数 # 5). 移动游标指针 print(cur.fetchmany(3)) print("正在移动指针到最开始......") cur.scroll(0, 'absolute') print(cur.fetchmany(3)) print("正在移动指针到倒数第2个......") print(cur.fetchall()) # 移动到最后 cur.scroll(-2, mode='relative') print(cur.fetchall()) # 4. 关闭游标 cur.close() # 5. 关闭连接 conn.close()
python读取/解析本地json文件
import json # 引入模块 if __name__ == '__main__': # 打开一个json文件 data = open("data.json", encoding='utf-8') # 转换为python对象 strJson = json.load(data) for node in strJson['list']: print(node)
Python一些常用方法-整理
最新推荐文章于 2024-06-19 16:22:29 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)