| Details |
Path | 文件的路径。路径分隔符可由 os.path.sep 决定。 |
Mode | 所需的权限,以八进制表示(例如,"0700) |
该模块为使用依赖于操作系统的功能提供了一种可移植的方式。
1: makedirs - 创建递归目录
给定一个本地目录,其内容如下:
└── dir1
├── subdir1
└── subdir2
我们希望在新目录 dir2 下创建相同的 subdir1 和 subdir2,而新目录 dir2 目前还暂不存在。
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
运行该程序的结果是
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 只会在第一次需要时创建,用于创建 subdir1 。
如果我们用 os.mkdir 代替,就会出现异常,因为 dir2 还不存在。
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
如果目标目录已经存在,os.makedirs 不会喜欢它。如果我们再次运行
OSError: [Errno 17] File exists: './dir2/subdir1'
不过,只要捕获异常并检查目录是否已创建,就可以轻松解决这个问题。
try:
os.makedirs("./dir2/subdir1")
except OSError:
if not os.path.isdir("./dir2/subdir1"):
raise
try:
os.makedirs("./dir2/subdir2")
except OSError:
if not os.path.isdir("./dir2/subdir2"):
raise
2: 创建目录
os.mkdir('newdir')
如果需要指定权限,可以使用可选的模式参数:
os.mkdir('newdir2', mode=700)
在mac和centos下测试,根据 mode 指定的参数,700 但是得到的结果 254 ,而非指定的700权限,后续我再查阅文档解决。暂时先这样。
3: 获取当前目录
使用 os.getcwd() 函数:
print(os.getcwd())
4: 确定操作系统名称
os 模块提供了一个接口,用于确定代码当前运行的操作系统类型。
os.name
在 Python 3 中可以返回以下结果之一:
- posix (类 unix 系统,如 Linux 的发行版本或者 Mac )
- nt (windows系统)
- ce
- java
可从 sys.platform 中获取更多详细信息
5: 删除一个目录
删除路径下的目录
os.rmdir(path)
不应使用 os.remove() 删除目录。该函数用于文件,在目录上使用会导致 OSError 错误
6: 跟踪符号链接(POSIX)
有时,您需要确定符号链接的目标。os.readlink 就能做到这一点:
print(os.readlink(path_to_symlink))
7: 更改文件权限
os.chmod(path, mode)
其中,mode 是所需的权限,以八进制表示。
52: 本地化模块
使用 locale 模块设置CNY的货币格式
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'zh_CN.UTF-8'
>>> locale.currency(762559748.49)
'¥762559748.49'
>>> locale.currency(762559748.49, grouping=True)
'¥762,559,748.49'