Python---python常见的内置模块

OS模块

文件/目录方法

import os
print(os.getcwd())  # 获取当前路径
print(os.listdir("d:\Learning\Python\demo"))  # 列举指定路径下的所有文件及文件夹
os.rename("d:\Learning\Python\demo\demo.py",
          "d:\Learning\Python\demo\demo_def.py")  # 重命名文件
os.remove("d:/Learning/Python/demo/demo_def.py")  # 删除文件
path = os.path.join("d:\Learning\Python\demo", "demo.py")  # 拼接路径
print(path)
print(os.path.abspath("d:/Learning/Python/demo"))  # 获取指定路径的绝对路径

print(os.path.split("d:/Learning/Python/demo/demo.py"))  # 将文件夹和文件分隔

案例1: 找到指定文件夹下(包含子文件夹)所有的以".pyc"为后缀文件,并将其删除掉

def remove_target_file(path):
    file_list = os.listdir(path)
    for file in file_list:
        abs_path = os.path.join(path, file)
        if os.path.isfile(abs_path):  # 判断是否是文件
            print(abs_path)
            if abs_path.endswith(".pyc"):
                os.remove(abs_path)
        else:
            remove_target_file(abs_path)


remove_target_file(path)

案例2: 找到指定文件夹下(包含子文件夹)所有的包含“.py”的文件

path = "d:/Learning/Python/demo/os"
def find_file_by_kw(path, kw):
    file_list = os.listdir(path)
    for file in file_list:
        abs_path = os.path.join(path, file)
        if os.path.isfile(abs_path):
            if kw in file:
                print(abs_path)
        else:
            find_file_by_kw(abs_path, kw)


find_file_by_kw(path, ".py")

datetime/time

import datetime
import time
# 初始化指定日期
target_datetime = datetime.datetime(2000, 10, 10, 10, 10)
print(target_datetime)  # 输出2000-10-10 10:10:00

now_time = datetime.datetime.now()  # 获取当前时间和日期
print(now_time)  # 输出当前时间和日期
print(type(now_time))  # 输出
now_time_str = now_time.strftime("%Y-%m-%d %H:%M:%S")  # 格式化为字符串
print(now_time_str)  # 格式化为字符串
print(type(now_time_str))  # 输出 

now = time.strftime("%Y-%m-%d %H:%M:%S")  # 获取当前时间和日期
print(now)  # 输出当前时间和日期
print(time.time())  # 从1970开始的描述

序列化模块 pickle/json

  • pickle
  • dumps将对象转换为字节序列;loads将字节序列转换为对象。
  • dump将对象序列化为字节序列并写入文件对象;load从文件对象中反序列化相应的对象。
  • json
  • dumps将对象转换为字符串;loads将字符串转换为对象。
  • import json
    import pickle
    
    
    people_dict = {"name": "Tom", "age": 20}
    json_str = json.dumps(people_dict)  # dumps将对象转换为字符串
    print(type(json_str), json_str)  # 输出 {"name": "Tom", "age": 20}
    
    
    ret_dict = json.loads(json_str)  # loads将字符串转换为对象
    print(type(ret_dict), ret_dict)  # 输出 {'name': 'Tom', 'age': 20}
    
    
    people_dict = {"name": "Tom", "age": 20}
    pickle_str = pickle.dumps(people_dict)  # dumps将对象转换为字节序列
    # 输出 b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x03\x00\x00\x00Tomq\x02X\x03\x00\x00\x00ageq\x03K\x14u.'
    print(type(pickle_str), pickle_str)
    
    
    ret_dict1 = pickle.loads(pickle_str)  # loads将字节序列转换为对象
    # 输出 {'name': 'Tom', 'age': 20}
    print(type(ret_dict1), ret_dict1)
    

    加密模块 hashlib

import hashlib

md5 = hashlib.md5()
md5.update("root".encode("utf-8"))
secret = md5.hexdigest()
print(secret) #输出63a9f0ea7bb98050796b649e85481845

文件IO:

1、文件打开的模式

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

2、文件操作:

  • 按行读取/按块读取/写入:read(100):读取限定字符;readline:读取单行;readlines:读取所有行,把所有行加载到内存中。
  • write:普通写入
  • writelines([]):写入多行,以列表的形式传入
  • 位置偏移量:seek([]),tell()

异常处理

try:
    a = 10/0
    print(a)
except Exception as e:
    print("除数不能为0")
    raise e  # 把异常抛出来
finally:
    print("无论发生什么情况,都执行此步。")

# 输出结果:
# 除数不能为0
# 无论发生什么情况,都执行此步。

 

你可能感兴趣的:(Python)