1. 文件目录相关
os.getcwd()
获取当前工作目录,即Python脚本工作的目录路径
>>> os.getcwd()
'/Users/nancy/Desktop'
os.listdir()
返回指定目录下的所有文件和目录名
os.path.isfile()
检测目标路径是否为一个文件,返回布尔值
os.path.isdir()
检测目标路径是否为一个目录,返回布尔值
os.path.isabs()
检测目标路径是否为绝对路径
os.path.exists()
检测目标路径是否存在
os.path.split()
返回目标文件的路径和文件名。
>>> os.path.split('/Users/nancy/Desktop/book/Python Testing Cookbook.pdf')
('/Users/nancy/Desktop/book', 'Python Testing Cookbook.pdf')
os.path.splitext()
返回目标文件的扩展名
>>> os.path.splitext('/Users/nancy/Desktop/book/Python Testing Cookbook.pdf')
('/Users/nancy/Desktop/book/Python Testing Cookbook', '.pdf')
>>>
os.path.dirname()
返回目标文件的路径名
>>> os.path.dirname('./book/Python Testing Cookbook.pdf')
'./book'
os.path.abspath()
返回目标文件的绝对路径名
>>> os.path.abspath('./book/Python Testing Cookbook.pdf')
'/Users/nancy/Desktop/book/Python Testing Cookbook.pdf'
os.path.basename()
获取目标文件名
os.path.join(path, filename)
拼接路径和文件名
>>> os.path.join('/test/path/', 'test.txt')
'/test/path/test.txt'
os.path.getsize()
获取目标文件大小
os.rename(old, new)
重命名文件
os.renames()
递归重命名
os.mkdir()
创建目录
os.makedirs()
创建多级目录
os.chdir()
改变工作目录至目标路径
os.remove()
删除指定文件
os.removedirs()
删除多个目录,递归删除
os.chmod()
修改文件权限
os.stat()
获取文件属性
>>> os.stat('./book/Python Testing Cookbook.pdf')
os.stat_result(st_mode=33188, st_ino=1649110, st_dev=16777231, st_nlink=1, st_uid=501, st_gid=20, st_size=9086621, st_atime=1614523765, st_mtime=1614386842, st_ctime=1614386842)
os.walk()
遍历目标路径/文件每一级路径和文件名
先看下目标目录结构
$ tree .
.
├── test1
│ └── test1.txt
└── test2
└── test2.txt
2 directories, 2 files
for dirpath, dirname, filename in os.walk('/Users/nancy/Desktop/test'):
print(dirpath, dirname, filename)
# 输出
/Users/nancy/Desktop/test ['test1', 'test2'] []
/Users/nancy/Desktop/test/test1 [] ['test1.txt']
/Users/nancy/Desktop/test/test2 [] ['test2.txt']
2. 操作系统相关
os.name
返回当前操作系统平台,对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’
>>> os.name
'posix'
os.environ
返回当前操作系统的所有环境变量,类型为字典,可以用 os.environ['HOME']
这样获取 ‘HOME’ 的环境变量
>>> os.environ['HOME']
'/Users/nancy'
os.getenv()
读取当前操作系统中的目标环境变量
>>> os.getenv('HOME')
'/Users/nancy'
os.get_terminal_size()
获取当前终端的大小
os.environ.setdefault()
设置临时系统环境变量,仅在当前程序运行的时候有效
os.system()
运行命令行命令,但是该方法无法获取命令执行后的返回值。该方法返回 0 表示命令执行成功
os.popen()
popen() 创建一个管道,通过fork一个子进程,然后该子进程执行命令。返回值在标准IO流中,该管道用于父子进程间通信。父进程要么从管道读信息,要么向管道写信息,至于是读还是写取决于父进程调用popen时传递的参数(w或r)其返回值是file read的对象, 对其进行读取read()操作可以看到执行的输出
>>> os.popen('ls')
<os._wrap_close object at 0x10100dfa0>
>>> os.popen('ls').read()
'book\ncctester_code\nphotos\nprivate\ntest\ntest1\ntest2\ntestdir\n'
执行命令行命令还是更推荐 subprocess.Popen() 方法
os.kill(pid, signal)
操作进程,第一个参数为要操作的进程,第二个参数为要进行的操作
os 模块还有很多很多方法和属性,详细学习请参考官网 – python-os模块