python 操作文件和目录
Python 的os模块提供了调用操作系统的函数,使用前import os
os.name 查看操作系统的类型
os.uname 查看操作系统的详细信息,这个不适用于Windows
os.environ 获取环境变量
os.environ.get('key') 获取某个环境变量的值
os.path.abspath('.') 查看当前目录的绝对路径
os.path.join('path1', 'path2') 连接两个路径 path1\path2
os.mkdir(path) 创建一个路径
os.rmdir(path) 移除一个路径
os.path.split(''/Users/michael/testdir/file.txt'
') 拆分成两个路径,后一部分是最后级别的路径或者文件名
('/Users/michael/testdir', 'file.txt')
os.path.splitext('path') 拆分成两个路径,后一部分是文件的扩展名
>>> os.path.splitext('/path/to/file.txt') ('/path/to/file', '.txt')
os.rename('') 重命名文件
os.remove('') 移除文件
最后看看如何利用Python的特性来过滤文件。比如我们要列出当前目录下的所有目录,只需要一行代码:
>>> [x for x in os.listdir('.') if os.path.isdir(x)]
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]
要列出所有的.py
文件,也只需一行代码:
>>> [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
['apis.py', 'config.py', 'models.py', 'pymonitor.py', 'test_db.py', 'urls.py', 'wsgiapp.py']
作业:列出某个目录及字目录下所有包含某个字符串的文件,给出相对路径
# _*_ coding:utf-8_*_
import os
def find_path(path):
for x in os.listdir(path):
i = os.path.join(path, x)
if os.path.isdir(i):
find_path(i)
if os.path.isfile(i) and os.path.splitext(x)[1] == '.java':
print(x)
find_path('D:\\Java')