Python笔记(赋值、浅拷贝和深度拷贝、字符串日期转换、argparse、sys、overwrite、eval、json.dumps/json.loads、os.system(cmd)、zfill)

2023-01-30 0 266

Python讲义(表达式、浅复本和广度复本、数组年份切换、argparse、sys、overwrite、eval、json.dumps/json.loads、os.system(cmd)、zfill)

1、数组切换为年份

dt_date = datetime.datetime.strptime(ymd, “%Y%m%d)

2、年份切换为数组

date = dt_date.strftime(“%Y-%m-%d)

3、昨晚

(datetime.datetime.strptime(date, “%Y%m%d) datetime.timedelta(1)).strftime(“%Y%m%d)

4、argparse

命令行选项、参数和子命令解析器

5、sys模块

提供了一系列有关Python运行环境的变量和函数

list)。sys.path:返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

6、overwrite

dataframe写入的一种模式,dataframe写入的模式一共有4种

def mode(saveMode: String): DataFrameWriter = { this.mode = saveMode.toLowerCase match { case “overwrite” => SaveMode.Overwrite // 覆盖已经存在的文件 case “append” => SaveMode.Append // 向存在的文件追加 case “ignore” => SaveMode.Ignore // 如果文件已存在则忽略保存操作 case “error” | “default” => SaveMode.ErrorIfExists // 如果文件存在则报错 case _ => throw new IllegalArgumentException(s“Unknown save mode: $saveMode. “ + “Accepted modes are overwrite, append, ignore, error.”) } this }

7、eval

用来执行一个数组表达式,并返回表达式的值

eval(expression[, globals[, locals]])

参数

expression – 表达式。globals – 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。locals – 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

还可以进行数组与list、tuple、dict的转化

8、json.dumps()和json.loads()

json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是数组)

json.dumps():Python 字典类型切换为 JSON 对象json.loads():将 JSON 对象切换为 Python 字典

9、os.system(cmd)

使用os.system(cmd)即可在python中使用linux命令

10、if __name__ == ‘__main__’:的作用

一个python文件通常有两种使用方法,第一是作为脚本直接执行,第二是 import 到其他的 python 脚本中被调用(模块重用)执行。因此 if __name__ == ‘main’: 的作用就是控制这两种情况执行代码的过程,在 if __name__ == ‘main’: 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的。

11、zfill

返回指定长度的数组,原数组右对齐,前面填充0

12、如果不够两位,前位补0

# 如果不够两位,前位补0 conf = “qzk” date = “20220606” h = 6 h1 = 16 s1 = f{conf}/{date}/{h:0>2d} s2 = f{conf}/{date}/{h1:0>2d} print(s1) print(s2) # 输出 qzk/20220606/06 qzk/20220606/16

13、Python 直接表达式、浅复本和广度复本解析

直接表达式:其实就是对象的引用(别名)。浅复本(copy):复本父对象,不会复本对象的内部的子对象。深复本(deepcopy): copy 模块的 deepcopy 方法,完全复本了父对象及其子对象。

字典浅/深复本实例

>>> a = {1: [1,2,3]} >>> b = a.copy() >>> a, b ({1: [1, 2, 3]}, {1: [1, 2, 3]}) >>> a[1].append(4) >>> a, b ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]}) >>> import copy >>> c = copy.deepcopy(a) >>> a, c ({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]}) >>> a[1].append(5) >>> a, c ({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

解析

1、b = a: 表达式引用,a 和 b 都指向同一个对象。 2、b = a.copy(): 浅复本, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。 3、b = copy.deepcopy(a): 广度复本, a 和 b 完全复本了父对象及其子对象,两者是完全独立的。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务