Python os模块完全指南:轻松玩转文件管理与系统操作
ahcoder 2025-05-11 13:39 4 浏览
Python os模块完全指南:轻松玩转文件管理与系统操作
os 模块是Python与操作系统对话的"瑞士军刀",学会它能让你轻松管理文件、操控路径、获取系统信息。本教程通过场景化案例+图解帮你快速上手,文末还有防坑指南哦!
一、文件与目录操作(动手试试!)
1. 定位当前位置:你的Python程序在哪?
import os
# 好比打开手机地图查看自己的位置
current_dir = os.getcwd()
print("你现在在这里:", current_dir) # 输出示例:C:\Users\小明\python_project
2. 查看文件夹内容:就像翻找书包
# 列出当前目录所有内容(包括隐藏文件)
items = os.listdir(".")
print("书包里有:", items) # 输出如:['笔记.docx', '照片', '作业.zip']
3. 创建/删除文件夹:建房子与拆积木
# 创建单层文件夹(只能建一层)
os.mkdir("新文件夹")
# 创建多层文件夹(自动建好每一层)
os.makedirs("年度报告/2023/第一季度")
# 删除空文件夹(必须保证里面没东西!)
os.rmdir("废弃的空文件夹")
# 危险操作:删除整个文件夹树(包括所有子文件)
import shutil # 需要额外导入这个工具包
shutil.rmtree("年度报告") # 慎用!删除后无法恢复
4. 文件操作:改名、删除、验身份
# 给文件改名(也可移动文件位置)
os.rename("旧名字.txt", "新名字.txt")
# 删除文件(送进回收站?不!直接永久删除)
os.remove("没用的文件.txt")
# 检查身份(是文件还是文件夹?)
print(os.path.isfile("报告.pdf")) # True
print(os.path.isdir("我的照片")) # True
二、路径管理(跨平台必备技能)
1. 智能拼接路径:自动适应不同系统
# 不用操心Windows用\,Linux用/
safe_path = os.path.join("文件夹", "子文件夹", "数据.csv")
print(safe_path) # Win输出:文件夹\子文件夹\数据.csv | Mac/Linux:文件夹/子文件夹/数据.csv
2. 拆解路径:轻松获取文件名和扩展名
# 拆分目录和文件名
directory, filename = os.path.split("/用户/小明/作业/数学.pdf")
print("目录:", directory) # /用户/小明/作业
print("文件名:", filename) # 数学.pdf
# 分离主文件名和扩展名
main_name, extension = os.path.splitext("风景照.jpg")
print("主文件名:", main_name) # 风景照
print("扩展名:", extension) # .jpg
3. 路径检测:避免文件失踪的秘籍
if os.path.exists("重要数据.xlsx"):
print("文件存在,可以操作!")
else:
print(" 文件找不到,检查路径是否正确!")
# 获取绝对路径(定位文件的完整地址)
abs_path = os.path.abspath("笔记.txt")
print("绝对路径:", abs_path) # 如:C:\Users\小明\笔记.txt
三、系统信息与操作(探索你的电脑)
1. 获取系统情报
print("操作系统类型:", os.name) # 'nt'代表Windows,'posix'代表Mac/Linux
print("路径分隔符:", os.sep) # Windows显示\,Mac/Linux显示/
print("当前登录用户:", os.getlogin()) # 输出:小明
# 查看环境变量(比如找Python安装路径)
print("系统PATH:", os.environ.get('PATH'))
2. 执行系统命令:让Python帮你敲命令
# 执行命令(就像在终端里输入一样)
status = os.system("dir") # Windows查看目录
# status = os.system("ls -l") # Mac/Linux查看详细列表
if status == 0:
print(" 命令执行成功!")
else:
print(" 出错了,检查命令是否正确")
四、实战案例:批量整理杂乱文件
场景:把"下载"文件夹里所有.txt文件按顺序命名为笔记1.txt, 笔记2.txt...
import os
download_folder = "下载"
counter = 1 # 起始编号
try:
for filename in os.listdir(download_folder):
# 只处理txt文件
if filename.endswith(".txt"):
# 构建新旧完整路径
old_path = os.path.join(download_folder, filename)
new_name = f"笔记{counter}.txt"
new_path = os.path.join(download_folder, new_name)
# 执行重命名
os.rename(old_path, new_path)
print(f"重命名成功:{filename} → {new_name}")
counter += 1
print(f" 整理完成!共处理了{counter-1}个文件")
except Exception as e:
print(f" 出错啦!原因:{str(e)}")
五、安全操作指南(新手必看!)
- 防误删三原则
o 操作前用os.path.exists()检查路径是否存在
o 删除前先打印要操作的文件路径确认
o 重要数据提前备份 - 跨平台兼容技巧
o 永远使用os.path.join()拼接路径
o 不要直接写C:\Users(Mac/Linux会出错)
o 检查系统类型:if os.name == 'nt': - 异常处理模板
try:
os.remove("重要文件.txt")
except FileNotFoundError:
print("文件不存在,请检查文件名")
except PermissionError:
print("没有删除权限!")
except Exception as e:
print("发生未知错误:", str(e))
知识拓展
官方文档:Python os模块文档
推荐练习:编写一个自动整理桌面文件的小工具(按扩展名分类到不同文件夹)
通过掌握这些技能,你已经能写出比Windows资源管理器更智能的文件管理程序了!遇到问题随时查阅文档,动手实践是学习编程的最佳途径~
相关推荐
- 如何删除Linux文件夹中除某些扩展名之外的所有文件?
-
假设你有一个名为data的文件夹,里面包含各种类型的文件,例如:data/├──document.txt├──image.jpg├──script.py├──log.log...
- 【命令操作】linux上basename和dirname使用详解 | 统信 | 麒麟 | 方德
-
原文链接:【命令操作】linux上basename和dirname使用详解|统信|麒麟|方德Hello,大家好啊!今天给大家带来一篇关于Linux系统中basename和dirname命令...
- 史上最全Linux服务器程序规范
-
作者:且飙丶且珍惜来源:http://blog.csdn.net/dextrad_ihacker/article/details/51930998除了网络通信外,服务器程序还必须考虑许多其他细节问...
- Linux基础-shell提取文件名和路径
-
最近处理dockerregistry镜像仓库,需要提取文件和路径,所以大概总结了下shell下提取文件和路径的方式。示例字符串strings_link="repositories/nginx...
- Linus Torvalds 怒斥 Linux 6.15 中“恶心”的测试代码:这玩意儿必须被干掉!
-
整理|郑丽媛出品|CSDN(ID:CSDNnews)“这玩意儿必须被干掉!”“别让所有人都看到这个‘恶心’的东西,让整个源码树变得一团糟!”没错,Linux之父LinusTorvalds又...
- linux ls基于文件名,大小,时间排序
-
linuxls命令中,-f直接列出结果,而不进行排序(ls默认会以文件名排序);-S基于文件大小进行排序;-t基于文件修改时间进行排序;-r将排序结果反向输出,例如:原本文件名由小到大,反向...
- 在Linux上使用grep仅显示文件名
-
技术背景在Linux系统中,grep是一个强大的文本搜索工具,常用于在文件中查找特定字符串。但有时我们只需要知道哪些文件包含了目标字符串,而不需要显示具体的匹配行。这种情况下,就需要一种方法让grep...
- linux实例之文件名的最大长度
-
在linux系统中,对文件名称、目录名称和绝对路径的长度都做了限制,且限制条件包括且不限于文件系统类型,系统内核等。不考外在因素外,linux系统默认是将文件名称和目录名称的长度限制在了255个字节,...
- Linux 命令 ncftp(文件传输)——想玩转linux就请一直看下去
-
我是IT悟道,点击右上方“关注”,每天分享IT、科技、数码方面的干货。Linuxncftp命令Linux命令大全Linuxncftp命令用于传输文件。FTP让用户得以下载存放于服务器主机的文件,...
- 10分钟部署BT磁力下载工具
-
1.环境准备云服务器一台&&自己的Linux主机云服务器请自行放行安全组这里推荐使用云服务器,为什么呢?后面告诉你SSH连接工具(这里我使用Xshell)LinuxCentOS7/...
- Linux kernel 4.1 RC2发布下载
-
IT之家讯5月4日消息,Linuxkernel4.1RC2版已经发布,并且已经可以在Kernel网站进行下载和测试。本次更新包括常规Bug修复、驱动程序更新、架构更新以及文件系统和网络改进。注...
- centos命令行下载BT种子和磁力链接
-
wget是linux下常用的命令行下载工具,是Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件。tget是种子文件的wget。而“tget”是一个简单的命令行BT下载工具,可以...
- linux入门系列15--文件传输之vsftp服务
-
前面的系列文章基本讲完了linux管理相关的基础知识,从本篇开始讲解centos7中服务程序的部署和配置,以便为外部提供各种服务。日常工作和娱乐中,我们所需的各种资源都离不开网络以及各种服务,我们通过...
- Linux 磁盘空间不够用?5 招快速清理文件,释放 10GB 空间不是梦!
-
刚收到服务器警告:磁盘空间不足90%!装软件提示Nospaceleftondevice!连日志都写不进去,系统卡到崩溃?别慌!今天教你5个超实用的磁盘清理大招,从临时文件到无用软件一键搞定...
- Linux Kernel 4.6 RC 5发布:最终版或5月中旬亮相
-
4月24日,按照惯例大神LinusTorvalds为即将到来的LinuxKernel4.6发布最新候选版本。从稳定的更新频率来看LinuxKernel4.6进展非常顺利,这是第五个候选版本,...
- 一周热门
- 最近发表
- 标签列表
-
- linux 远程 (37)
- u盘 linux (32)
- linux 登录 (34)
- linux 路径 (33)
- linux 文件命令 (35)
- linux 是什么 (35)
- linux 界面 (34)
- 查看文件 linux (35)
- linux 语言 (33)
- linux代码 (32)
- linux 查看命令 (33)
- 关闭linux (34)
- root linux (33)
- 删除文件 linux (35)
- linux 主机 (34)
- linux与 (33)
- linux 函数 (35)
- linux .ssh (35)
- cpu linux (35)
- 查看linux 系统 (32)
- linux 防火墙 (33)
- linux 手机 (32)
- linux 镜像 (34)
- linux mac (32)
- linux ip地址 (34)