Prerequisite
全部知识点来源:扇贝编程
结合知识点:python 高级用法 -- IO编程
获取计算机信息
#! /usr/bin/env python
# -*- coding: UTF-8 -*-
# @Author: Xiaotuan
import os
import sys
import platform
print(os.name) # 操作系统类型(posix -> linux,nt -> windows,java -> java 虚拟机)
print(sys.platform) # 系统的平台标识(win32 -> windows,linux -> linux,cygwin -> windows,darwin -> Mac OS)
print(sys.executable) # Python 解释器的路径
print(platform.system()) # 操作系统的名字(Linux,Windows,Java)
print(platform.platform()) # 操作系统的名称及版本号
print(platform.version()) # 操作系统的版本号
print(platform.architecture()) # 操作系统的位数
print(platform.machine()) # 计算机的处理器架构
print(platform.node()) # 计算机的名称
print(platform.processor()) # 计算机的处理器信息
print(platform.uname()) # 包含上面部分的信息汇总
"""
nt
win32
D:\Software\Anaconda\envs\data\python.exe
Windows
Windows-10-10.0.22000-SP0
10.0.22000
('64bit', 'WindowsPE')
AMD64
DESKTOP-XIAOTUAN
Intel64 Family 6 Model 158 Stepping 10, GenuineIntel
uname_result(system='Windows', node='DESKTOP-XIAOTUAN', release='10', version='10.0.22000', machine='AMD64')
"""
print(os.environ) # 操作系统中定义的环境变量
print(os.environ.get('PATH')) # 获取某个环境变量的值
"""
environ({xxx: xxx, xxx: xxx})
xxx; xxx; xxx
"""
文件操作基础
os 库的常用函数
# 将工作目录移至指定路径
os.chdir()
# 获取当前的工作路径
os.getcwd()
# 列举出指定目录下的所有文件
os.listdir()
# 创建目录
os.mkdir()
# 改变文件或文件夹的名称或位置
os.rename(old_path, new_path)
# 分离扩展名
os.path.splitext()
# 文件路径拼接
os.path.join()
# 分离扩展名
os.path.splitext()
- 常见用法
# 使用 .. 跳转到上级目录
os.chdir('..')
# 改名
old_path = r'.\b.txt'
new_path = r'.\a.txt'
os.rename(old_path, new_path)
# 分离扩展名方法
path = '/Users/wenwen/Desktop/娱乐/2020/开心.jpg'
file_name = '开心.jpg'
file_name2 = '2.开心.jpg'
# 传入路径
print(os.path.splitext(path))
# 输出:('/Users/wenwen/Desktop/娱乐/2020/开心', '.jpg')
# 传入文件名
print(os.path.splitext(file_name))
# 输出:('开心', '.jpg')
# 传入带 . 的文件名
print(os.path.splitext(file_name2))
# 输出:('2.开心', '.jpg')
- 案例【获取目录下全部文件扩展名】
import os
path = '/Users/wenwen/Desktop/娱乐/2020'
os.chdir(path)
# 用列表生成式对目录中的每个文件进行分割,并取元组中第二个元素
split = [os.path.splitext(item)[1] for item in os.listdir()]
# 过滤掉空字符串
extensions = [i for i in split if i != '']
# 用 set() 函数给最后的结果去重
extensions = list(set(extensions))
print(extensions)
# 输出:['.jpg', '.docx', '.mp3']
- 另一种案例【参考文章:文件读写】
# ~~~~~~~~~~~~~~ 文件读写 ~~~~~~~~~~~~~~
# r 只读 w+ 读写 a+ 追加 b 二进制
# 读取全部信息
f = open("test.txt", "r")
data = f.read()
f.close()
# 写入全部信息
f = open("test.txt", "w+")
data = "123"
f.write(data)
# 读取每行信息
f = open("test.txt", 'r')
lines = f.readlines()
for line in lines:
# replace 执行顺序先左再右
data = line.replace('\r', '').replace('\n', '')
print(data)
# 记得结束函数调用
f.close()
"""
# 这种方式与上面的大同小异,甚至更加麻烦,不推荐
with open("test.txt", 'r') as f:
lines = f.readlines()
for line in lines:
data = line.replace('\r', '').replace('\n', '')
print(data)
"""
# ~~~~~~~~~~~~~~ 一键重命名 ~~~~~~~~~~~~~~
import os
# 修改路径
path = 'C:/Users/LILANJUN/Desktop/Temporary/ctf/'
f = os.listdir(path)
n = 0
name_num = 0
for i in f:
# 仅选择目标格式的文件
if("png" not in f[n]):
n += 1
continue
# 设置旧文件名(就是路径 + 文件名)
oldname = path + f[n]
# print(oldname)
# 设置新文件名
newname = path + 'tv-' + str(name_num) + '.png'
# 用 os 模块中的 rename 方法对文件改名
os.rename(oldname, newname)
print(oldname, '======>', newname)
n += 1
name_num += 1
发邮件
使用到 yagmail 模块,它主要用来自动化发送邮件
pip install yagmail
# 导入 yagmail 模块
import yagmail
import os
path = os.path.join(os.path.abspath('.'), 'a.xlsx')
print(path)
# 连接邮箱服务器
yag = yagmail.SMTP(user='2796308562@qq.com', password='cqbmekjsudcfdhdh', host='smtp.qq.com')
# 邮件内容
yag.send(to=['2796308562@qq.com'], subject='Python 发送邮件', contents=['带有附件的', path])