一文读懂python3

嵌入式技术

1372人已加入

描述

前言

Python 3 带有一个模块叫做 os,代表 “操作系统(operating system)。”Python 尽最大的努力在所有支持的操作系统上提供一个统一的API, 这样你就可以在保证程序能够在任何的计算机上运行的同时尽量少的包含平台特定的代码。

将examples目录加入到导入搜索路径中

将当前工作目录切换到examples目录

OS模块

os.getcwd() 和os.chdir()

os 模块提供了两个函数处理当前工作目录,如下:

python3

使用os.getcwd() 函数获得当前工作目录。当你运行一个图形化的Python Shell 时,当前工作目录默认将是Python Shell的可执行文件所在的目录。

使用os.chdir()函数改变当前工作目录,即使在Windows上,我也总是使用Linux风格的路径(正斜杠,没有盘符)。这就是Python 尝试隐藏操作系统差异的一个地方。

win下 / ,Linux下 \

路径名添加一个额外的斜杠。由于我在Windows 上写这个例子, 这个斜杠是一个反斜杠而不是正斜杠。如果你在Linux 或者Mac OS X上重现这个例子, 你将会看见正斜杠。

os.path.join()和os.path.expanduser()

os.path.join() 函数从一个或多个路径片段中构造一个路径名。

os.path.expanduser() 用来将包含~符号(表示当前用户Home目录)的路径扩展为完整的路径。

python3

split

split 函数分割一个完整路径并返回目录和文件名。

os.path.split() 函数返回元组中的第一个元素,文件所在的目录;

元组中的第二个元素,文件名。

os.path 也包含os.path.splitext() 函数,它分割一个文件名并返回短文件名和扩展名。可以使用同样的技术将它们的值赋值给不同的变量。

python3

glob 模块

它是Python标准库中的另一个工具,它可以通过编程的方法获得一个目录的内容,并且它使用熟悉的命令行下的通配符。

.glob

glob 模块接受一个通配符并返回所有匹配的文件和目录的路径。在这个例子中,通配符是一个目录名加上 “*.xml”, 它匹配examples子目录下的所有.xml 文件。

现在我们将当前工作目录切换到examples 目录。 os.chdir() 可以接受相对路径。

在glob模式中你可以使用多个通配符。这个例子在当前工作目录中找出所有扩展名为.py并且在文件名中包含单词test 的文件。

python3

time 模块

python3

os.stat()

每一个现代文件系统都对文件存储了元信息: 创建时间,最后修改时间,文件大小等等。Python 单独提供了一个的API 用于访问这些元信息。 你不需要打开文件。知道文件名就足够了。

调用os.stat() 函数返回一个包含多种文件元信息的对象。

python3

os.path.realpath()构造绝对路径

当你希望构造一个从根目录开始或者是包含盘符的绝对路径时,你就需要用到os.path.realpath()函数了。

python3

列表解析

列表解析提供了一种紧凑的方式,实现了通过对列表中每一个元素应用一个函数的方法来将一个列表映射到另一个列表。

你可以在列表解析中使用任何的Python表达式, 包括os 模块中用于操作文件和目录的函数。列表解析并不限制表达式的复杂程度。

python3

条件的文件,所以这个列表解析返回包含六个文件名的列表。

python3

更复杂的:

python3

字典解析

字典解析和列表解析类似,只不过它生成字典而不是列表。

python3

这不是字典解析;

而是列表解析。它找到所有名称中包含test的.py文件,然后构造包含文件名和文件元信息(通过调用os.stat()函数得到)的元组。

结果列表的每一个元素是元组。

这是一个字典解析。 除了两点以外,它的语法同列表解析很类似。

首先,它被花括号而不是方括号包围;

第二,对于每一个元素它包含由 冒号 分隔的两个表达式,而不是列表解析的一个。

冒号前的表达式(在这个例子中是f)是字典的键;冒号后面的表达式(在这个例子中是os.stat(f))是值。

python3

小技巧: 交换字典的键和值。

python3

集合解析

它和字典解析的非常相似,唯一的不同是集合只有值而没有键:值对。

python3

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分