【python】
2021/9/30 20:12:55
本文主要是介绍【python】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这里写目录标题
- 语法
- 拷贝
- Python 直接赋值、浅拷贝和深度拷贝解析
- 数据结构
- str
- split
- list
- 把 x 中的变量类型由字符串变为 int
- dict
- json.loads兼容单引号数据
- dict排序
- defaultdict
- 文件系统
- 文件
- 计算字符串和文件md5值的方法
- 读文件(ignore编码错误)
- 跳过第一行读取文件
- python下遍历文件夹中所有文件
- import excel处理模块xlrd
- 编码
- encode decode
- 网络
- requests简单demo
语法
拷贝
Python 直接赋值、浅拷贝和深度拷贝解析
- 直接赋值:其实就是对象的引用(别名)。
- 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
- 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
1、b = a: 赋值引用,a 和 b 都指向同一个对象。
2、b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。
b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。
数据结构
str
split
str.split(sep=None, maxsplit=-1) 第二个参数代表最大分割数。是1的话最大分割数为2.
maxsplit默认为-1(既不指定maxsplit的值),最大分割。
list
把 x 中的变量类型由字符串变为 int
x = [ '1', '2', '3' ] x = list(map(int, x))
dict
json.loads兼容单引号数据
import json data = "{'field1': 0, 'field2': 'hehehehe', 'field3': 'hahaha'}" json.loads(data) # json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1) data = json.dumps(eval(data)) # 不报错
dict排序
items = adict.items() items.sort() return [value for key, value in items]
defaultdict
普通字典调用时用法 dict[element] = xxx, 前提是element字典里,如果不在字典里就会报错
defaultdict的作用是在于,当字典里的key不存在但被查找时,返回的不是keyError而是一个默认值
默认值是什么?
# dict =defaultdict( factory_function) # defaultdict接受一个工厂函数作为参数,这个factory_function可以是list、set、str等等,作用是当key不存在时,返回的是工厂函数的默认值,比如list对应[ ],str对应的是空字符串,set对应set( ),int对应0 from collections import defaultdict dict1 = defaultdict(int) dict2 = defaultdict(set) dict3 = defaultdict(str) dict4 = defaultdict(list) dict1[2] ='two' print(dict1[1]) print(dict2[1]) print(dict3[1]) print(dict4[1])
out
0 set() []
文件系统
文件
计算字符串和文件md5值的方法
和linux自带的md5sum命令计算结果一致
计算字符串md5值
import hashlib def string_to_md5(string): md5_val = hashlib.md5(string.encode('utf8')).hexdigest() return md5_val
计算文件md5值
#coding: utf-8 import os import hashlib import sys def md5sum(fname): if not os.path.isfile(fname): return False try: f = file(fname, 'rb') except: return False m = hashlib.md5() # 大文件处理 while True: d = f.read(8096) if not d: break m.update(d) ret = m.hexdigest() f.close() return ret if __name__ == "__main__": if len(sys.argv) < 2: print(u"请输入文件路径") sys.exit(1) filepath = sys.argv[1] print(md5sum(filepath))
读文件(ignore编码错误)
with codecs.open('data/journalName1.csv', 'rU', errors="ignore") as file: reader = csv.reader(file) for line in reader: print(line)
跳过第一行读取文件
with open('file_name', 'r') as f: lines = f.readlines()[1:] # skip the first line. for line in lines: print(line) with open('file_name', 'r') as f: next(f) # skip the first line. for line in f.readlines(): print(line)
python下遍历文件夹中所有文件
import os for i in os.walk(path): print(i) import os filenames = os.listdir(path) for filename in filenames: print(filename)
import excel处理模块xlrd
import xlrd def read_excel(): # 打开文件 workbook = xlrd.open_workbook('./test.xlsx') # 获取所有sheet print(workbook.sheet_names()) # [u'sheet1', u'sheet2'] # 根据sheet索引或者名称获取sheet内容 sheet1 = workbook.sheet_by_index(0) # sheet索引从0开始 # sheet的名称,行数,列数 print(sheet1.name, sheet1.nrows, sheet1.ncols) # 获取整行和整列的值(数组) rows = sheet1.row_values(3) # 获取第四行内容 cols = sheet1.col_values(2) # 获取第三列内容 print(rows) print(cols) # 获取单元格内容 print(sheet1.cell(1, 0).value.encode('utf-8')) print(sheet1.cell_value(1, 0).encode('utf-8')) print(sheet1.row(1)[0].value.encode('utf-8')) # 获取单元格内容的数据类型 print(sheet1.cell(1, 0).ctype) if __name__ == '__main__': read_excel()
xls文件内容的编码问题使用xlrd报错XLRDError,编码转换
file="Important_declaredate.xls" f = open(file, 'rb') lines = f.readlines() for line in lines: line = line.decode('gb2312').encode('utf8') print line
编码
encode decode
字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
- decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。
- encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gb2312编码。
网络
requests简单demo
url = 'http://serving.c7e6379018aad473385b99f37fbab2471.cn-shanghai.alicontainer.com/v1/models/push_rank:predict' headers = {'Content-Type':'application/json'} features = {"feat_ids":[[1]*816], "feat_vals":[[1]*816]} d = json.dumps({"signature_name":"serving_default","inputs":features}) response = requests.post(url, data=d, headers=headers) print(response.text)
这篇关于【python】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-03用FastAPI掌握Python异步IO:轻松实现高并发网络请求处理
- 2025-01-02封装学习:Python面向对象编程基础教程
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型