学习笔记——python导入模块(2)

1.from datetime import datetime,timedelta

from datetime import datetime,timedelta
cday=datetime.strptime('2021-12-17 10:58:30','%Y-%m-%d %H:%M:%S')#str转换为datetime
print(cday)
c=datetime(2021,12,17,11,3,30)
print(c)
now=datetime.now()#获取当前时间
print(now)
now+=timedelta(hours=10,seconds=30)#对日期和时间进行加减
print(now)

输出:
在这里插入图片描述

2.import copy

copy.copy()方法:浅层复制
copy.deepcopy()方法:深层复制

import copy
a=[0,1,[0,1]]
b=a[:]
c=a.copy()
d=copy.copy(a)
e=copy.deepcopy(a)
a[2][0]='你'
print(a,'\n',b,'\n',c,'\n',d,'\n',e)

运行结果:
在这里插入图片描述

3.import yaml

转载:https://www.jianshu.com/p/eaa1bf01b3a6
yaml是一个专门用来写配置文件的语言,(键值对的集合)
特点:
区分大小写;使用缩进表示层级关系;使用空格键表示缩进;
缩进的空格数目不固定,只需要相同层级的元素左侧对齐;
文件中的字符串不需用引号标注,但若字符串包含特殊字符则须用引号引用标注
(1)读取yaml文件的代码、yaml文档、yaml解析

import yaml
import os
def get_yaml_load_all(yaml_file):#yaml文件中含有多个文档时,分别获取文档中数据
    # 打开yaml文件
    file = open(yaml_file, 'r', encoding="utf-8")
    file_data = file.read()
    file.close()
    all_data = yaml.load_all(file_data)
    for data in all_data:#使用load_all来解析全部文档
        print(data)
current_path = os.path.abspath(".")
yaml_path = os.path.join(current_path, "usr1.yaml")
get_yaml_load_all(yaml_path)
#分段yaml文件中多个文档
usr1:
  name:a
  age:2
---
usr2:
  name:b
  age:5

在这里插入图片描述
(2)生成yaml文档

# 将python对象生成yaml文档
import yaml
def generate_yaml_doc(yaml_file):
    py_object = {
    
    'school': 'zhang',
                 'students': ['a', 'b']}
    file = open(yaml_file, 'a', encoding='utf-8')
    yaml.dump(py_object, file)#yaml.dump()方法不会将列表或字典数据进行转化yaml标准模式,只会将数据生成到yaml文档中
    file.close()
current_path = os.path.abspath(".")
yaml_path = os.path.join(current_path, "usr1.yaml")
generate_yaml_doc(yaml_path)

生成的yaml文档
在这里插入图片描述

4.from pathlib import Path(面向对象的文件系统路径)

转载:https://www.cnblogs.com/poloyy/p/12435628.html
pathlib和os.path的比较
(1)当需要找多个层级的目录路径时,通过 os.path 需要嵌套写法,而 pathlib 可以提供链式写法,简洁明了
(2)os.path 只用于处理路径,如果你想在获取到的路径下做一些事情(如:创建一个目录),你就需要用 os 模块,而 pathlib 可以一站式搞定

#pathlib的常用基本方法
Path.is_dir()  # 判断是否是目录
Path.is_dir()  # 是否是文件
Path.exists()  # 判断路径是否存在
Path.open()  # 打开文件(支持with)
Path.resolve()  # 返回绝对路径
Path.cwd()  # 返回当前目录
Path.iterdir()  # 遍历目录的子目录或者Path.parents  # 返回所有上级目录的列表
Path.parts  # 分割路径 类似os.path.split(), 不过返回元组
Path.root  # 返回路径的根目录
Path.mkdir()  # 创建目录
Path.rename()  # 重命名路径
Path.unlink()  # 删除文件或目录(目录非空触发异常)
Path.joinpath()  # 拼接路径

猜你喜欢

转载自blog.csdn.net/daige123/article/details/121992741