在 Python 开发中,os 和 sys 模块提供了许多底层而实用的功能,从文件操作到系统信息、命令行参数,再到内存监控,掌握它们可以让你的开发效率和调试能力大幅提升。本文整理了我个人觉得最实用的 10 个 os/sys 技巧,帮你少走弯路。

1)os.listdir
os.listdir() 会返回指定文件夹中的内容列表。
列如有一个名为 eth 的文件夹:

结果就是 blank 目录下的文件和子文件夹。
⚠️ 注意:它只会列出当前目录的一层内容,不会递归进入子文件夹。
如果需要递归列出所有文件,就要用 os.walk 而不是 os.listdir。
2)os.walk
相比 os.listdir,os.walk() 更强劲,它能递归遍历整个文件夹,包括所有子文件夹和文件。

在每次循环中,os.walk 返回一个三元组:
- root:当前所在路径
- subfolders:当前路径下的子文件夹列表
- filenames:当前路径下的文件列表
3)os.system
os.system() 可以让 Python 执行一条终端命令。

优点:可以在 Python 中动态拼接命令并执行。
注意:并不是所有的终端命令都能通过 os.system 正常运行。
4)os.system(“cd folder”) 不起作用
在终端中,cd 用来切换目录:

你会发现目录并没有改变。
缘由是:os.system() 会启动一个新的子进程执行命令,命令执行完毕后,子进程就结束了,所以当前 Python 进程的工作目录没有被修改。
✅ 正确的做法是使用 os.chdir():

os.chdir() 会直接修改当前 Python 进程的工作目录,是程序内部切换目录的正确方法。
5)os.get_terminal_size()
获取当前终端窗口的大小(列数和行数):

6)os.environ
os.environ 是一个字典,里面保存了当前系统的所有环境变量。
这在应用需要读取自定义环境变量时超级有用。

7)sys.argv
sys.argv 是一个列表,保存了运行 Python 脚本时传入的命令行参数。下面的示例是启动notebook kernel 的命令参数:

8)sys.path
sys.path 是一个字符串列表,每个字符串代表一个文件夹路径。
当我们在 Python 中 import 一个库时,解释器会按照 sys.path 中的路径顺序去搜索对应的模块。

输出结果就是一堆路径,列如当前目录、标准库目录、第三方库目录等。
了解 sys.path 很有用:
- 可以知道 Python 是从哪里加载模块的
- 如果需要导入自定义模块,可以临时往 sys.path 里追加路径
sys.path.append("/my/custom/path")
这样就能成功导入该目录下的模块了。
9)sys.executable / sys.version / sys.version_info / sys.platform
这些属性可以让我们获取 Python 解释器和安装环境的信息。
常见的有:

这些信息在以下场景很有用:
- 程序需要确认运行环境(如兼容性检查)
- 日志中记录 Python 版本和系统信息
- 动态决定某些依赖或代码分支
10)sys.getsizeof
sys.getsizeof() 用来返回一个对象占用的 内存大小(字节)。

它可以作用于任意对象,包括列表、字典、集合等。
用途:
- 检查对象占用的内存
- 在处理大数据或优化内存使用时特别有协助
掌握这些 os 和 sys 的小技巧,你可以:
- 快速操作文件和目录
- 灵活调用系统命令
- 获取 Python 环境信息
- 处理命令行参数
- 检查对象内存占用
这些都是日常开发、调试和优化中超级实用的技能。
熟练使用它们,可以让你的 Python 编程更高效、更灵活,也更接近「工具型高手」的水平。



膜拜大佬👏
收藏了,感谢分享