Python学习2024.6.14模块

模块

python中的模块是一个包含事先定义好的函数和变量的文件,其后缀名是.py。 模块可以被别的程序引入,以使用该模块中的函数等功能。

时间模块

from … import 语句

  • as 起别名
  • * 通配符表示引用模块中所有对象
import time # 模块名
from datetime import datetime
from time import time as tt
import pandas as pd
import numpy as np
#通过模块名调用,它内部的函数或类
print(time.gmtime()) # 获取格式化时间对象,返回值是当前格林尼治时间。
print(time.localtime()) # 获取格式化时间对象,返回值是当地时间(也就是北京时间,比格林尼治时间+8小时)。
print(time.time()) # 获取当前时间戳。  时间戳是指从计算机元年到现在经过的秒数。计算机元年是指1970年1月1日0时0分0秒。
print(time())
print(tt())
print(datetime.now(),type(datetime.now()))
now_datetime = datetime.now()
strs_time = datetime.strftime(now_datetime,'%Y-%m-%d %H:%M:%S')
print(strs_time,type(strs_time))
now_datetime_1 = datetime.strptime(strs_time,'%Y-%m-%d %H:%M:%S')#字符串型
print(now_datetime_1,type(now_datetime))

显示与添加模块路径

import sys
print(sys.path)
sys.path.append("D:\\钉钉")

模块的__name__属性

# 用来保证模块内的函数不被自动执行。

包的本质就是一个文件目录. 目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包。 目录中存放了一个或多个.py模块. 在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包和包中含有的子目录。

自定义模块

Python解释器在搜索模块时会查找几个不同的路径。通常,它会查看当前工作目录和Python的site-packages目录。如果你的模块不在这些路径中,你可能需要修改sys.path来包含模块的路径,或者使用相对/绝对路径来导入模块。

# my_module.py  
  
def greet(name):  
    return f"Hello, {name}!"  
  
class MyClass:  
    def __init__(self, value):  
        self.value = value  
  
    def print_value(self):  
        print(self.value)
# main.py  
  
import my_module  
  
print(my_module.greet("World"))  # 输出 "Hello, World!"  
  
obj = my_module.MyClass(42)  
obj.print_value()  # 输出 42



#除了使用import语句导入整个模块外,你还可以使用from ... import ...语句来导入模块中的特定函数或类。
# main.py  
  
from my_module import greet, MyClass  
  
print(greet("World"))  # 输出 "Hello, World!"  
  
obj = MyClass(42)  
obj.print_value()  # 输出 42

标准模块

  • sys 用于提供对Python解释器相关的操作
  • os 用于提供系统级别的操作,关机,删文件,创建文件,调用系统命令
  • time/datetime 时间相关的操作
  • hashlib 用于加密相关的操作
  • random 用于随机数
  • re 用于正则表达式
  • json 用于Json字符串和 python基本数据类型间进行转换

sys模块常用方法

# system (python解释器)
# sys.path          # 查看模块搜索路径以列表显示
# sys.version       # 查看当前python版本
# sys.argv          # 自动获取命令行参数列表,第一个参数是自己程序名

import sys
input_file = 'E:\皮皮虾'
output_file = 'E:\小龙虾'
if len(sys.argv)==3:
    input_file = sys.argv[1]
    output_file = sys.argv[2]
elif len(sys.argv)==2:
    input_file = sys.argv[1]

print(input_file,output_file)

os模块常用方法

import os
print(os.system("dir"))
print(os.getcwd())

os.chdir('C:\python39')
print(os.getcwd())
print(os.path.abspath('./hello.txt'))
os.makedirs('dir1/dir2')
os.removedirs('dir1/dir2')
print(os.listdir())
os.path.abspath(path)       # 返回path规范化的绝对路径
print(os.path.split(r'C:\Users\wangshang\Desktop\hello.txt'))         # 将path分割成目录和文件名二元组返回
print(os.path.basename(r'C:\Users\wangshang\Desktop\hello.txt'))
print(os.path.join(r'C:\Users\wangshang','Desktop\hello.txt'))

print(__file__)
print(os.path.dirname(os.path.abspath(__file__)))
print(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

random 随机数模块

import random

print(random.random()) # 随机0~1范围内的小数
print(random.randint(1, 10)) # 随机1~10之间的整数
print(random.randrange(5, 10,2)) # 可以有开始值,结束值,步长
print(random.choices([1,2,3,4])) # 从列表中随机去一个值
lists = [1,2,3,4,5,6]
random.shuffle(lists)
print(lists)

print(random.sample(lists,3))#列表中选3个值生成随机列表

作业

以日期为名字,创建日志文件,文件中包含 姓名 操作日期 操作文件 ,人名和操作日期,操作的文件要自己想办法生成模拟数据,以月为 单位,创建文件夹,存放这些日志文件。

只创建日志文件比如2024-06-14.log   然后将他放到对应月份文件夹下即可

import os  
import datetime  
import random  
  
def random_name():  
    return random.choice(['刘阳', '张三', '李四', '王五'])  
  
def random_file():  
    return random.choice(['微信.exe', '20240614.py', 'word.txt', 'nihao.py'])  
  
def create_folder(log_dir, date):  
    year_month = date.strftime('%Y-%m')  
    folder_path = os.path.join(log_dir, year_month)  
    if not os.path.exists(folder_path):  
        os.makedirs(folder_path)  
    return folder_path  
  
def write_log(log_folder, date, name, file_name):  
    log_name = date.strftime('%Y-%m-%d.log')  
    log_path = os.path.join(log_folder, log_name)  
  
    with open(log_path, 'a', encoding='utf-8') as log_file:  
        log_entry = f"姓名: {name}, 操作日期: {date.strftime('%Y-%m-%d')}, 操作文件: {file_name}\n"  
        log_file.write(log_entry)  
  
log_directory = 'logs'  
target_date = datetime.date(2024, 6, 14) 
  
log_folder = create_folder(log_directory, target_date)  
name = random_name()  
file_name = random_file()  
write_log(log_folder, target_date, name, file_name) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值