百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

python散装笔记——51: os 模块 和 52: 本地化模块

xsobi 2025-02-13 14:54 19 浏览


Parameter

Details

Path

文件的路径。路径分隔符可由 os.path.sep 决定。

Mode

所需的权限,以八进制表示(例如,"0700)

该模块为使用依赖于操作系统的功能提供了一种可移植的方式。

1: makedirs - 创建递归目录

给定一个本地目录,其内容如下:

Bash
└── dir1
    ├── subdir1
    └── subdir2

我们希望在新目录 dir2 下创建相同的 subdir1subdir2,而新目录 dir2 目前还暂不存在。

Bash
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'

相关推荐

249个Linux Shell脚本经典案例,拿来即用(附PDF)

...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本...

Go 语言 Web 框架 Echo 系列:基础篇—搭建 Echo 开发环境

工欲善其事必先利其器。我们先搞定Echo环境。Go开发环境这个系列基于Go1.14.4,Linux系统。安装Go的方式有很多,可以在这里https://studygolang.com/...

连Shell的基本输出都不会,还写什么脚本?echo和printf命令总结

在Linux系统中使用echo命令和printf命令都可以实现信息的输出功能,下面我们分别看这两个命令的应用案例。echo...

在Linux中改变echo输出颜色的方法

技术背景在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变...

Spring框架中applicationContext.xml和spring - servlet.xml的区别

技术背景在Spring框架里,...

Tomcat服务器配置与优化:让Java应用飞得更高更远

Tomcat服务器配置与优化:让Java应用飞得更高更远Tomcat作为一款轻量级且功能强大的开源JavaServlet容器,无疑是许多中小型项目的首选服务器。然而,Tomcat的性能和稳定性并非天...

分享 5 个正则表达式的实际应用场景案例

转载说明:原创不易,未经授权,谢绝任何形式的转载在计算机编程的广泛领域中,某些技术具有改变我们如何处理和提取文本内容中信息的能力。在这些强大工具中,正则表达式成为每个开发者工具库中基本且不可或缺的组成...

最简洁详细的SSM框架整合(ssm框架详细介绍)

创建项目和SSM框架整合思路一、创建项目因为后面会配置springMVC,所以用IDEA的web骨架创建一个maven项目。创建项目目录如下,同时,项目需要的包和文件已手动创建好了:项目目录上图中,a...

使用JSP 2避免JSP文件中的Java代码

技术背景在早期的JSP开发中,使用脚本片段(...

微信安卓测试版8.0.28开发者更新内容公布

IT之家9月7日消息,微信安卓平台迎来了8.0.28测试版更新,相比上一次更新安装包体积有所减小,文件详细信息如下:微信安卓内测版8.0.28(ARM64)安装包文件大小254MB...

疯传阿里内网的SpringMVC笔记,被一个离职员工泄露,手慢无

一、简介1.介绍SpringMVC是实现MVC的轻量级Web框架,底层封装了servlet2.特点...

学习笔记之Struts2—工作原理图(struts1工作原理)

本文以Struts2的官方工作原理图作为主线讲解(参考部分书籍与视频)1.初始概念struts2是web.xml进行配置的一个过滤器,当web项目启动的时候,这个过滤器就会生效。2.web.xml&l...

Spring MVC工作流程及请求处理机制全解

SpringMVC工作流程及请求处理机制全解作为一个Java开发者,你一定对Spring框架有所耳闻。今天我们就来详细聊聊SpringMVC,这是Spring家族中最常用的Web层框架之一。Spr...

在Javaweb中实现发送简单邮件(java实现邮件收发)

前言当我们在一个网站中进行注册账户成功后,通常会收到一封来自该网站的邮件。邮件中显示我们刚刚申请的账户和密码以及一些其他的广告信息。在上一篇中用Java实现了发送qq邮件的功能,今天我们来实现一个这样...