os在python中的意思,python中os的用法

  os在python中的意思,python中os的用法

  导入:

  1.导入实际上是python虚拟机把当前的globals()和locals()传入_ _ builds _ _。__import__内置函数,所以实际上是_ _ import _ _函数起作用!

  2.导入对命名空间的影响

  (1)如果是python的内置模块,比如os模块。这些模块是在python虚拟机启动时加载的,但并不公开。我们可以通过dir()命令查看当前的名称空间。

  Python代码

  目录()

  [__builtins__ , __doc__ , __name__]

  如你所见,你看不到像os和sys这样的模块。

  但是如果我们执行import sys,我们就会得到它。

  Python代码

  导入系统

  目录()

  [__builtins__ , __doc__ , __name__ , sys]

  通过字典sys.modules(键:模块名;值:模块的路径),我们可以查看模块的信息。通过id函数,我们可以知道这两个sys模块是否是同一个模块,如下:

  Python代码

  id(系统)

  135708788

  id(sys.modules[sys])

  135708788

  (2)导入只影响当前模块的命名空间

  比如a.py里有导入bb,bb.py里有导入os,可以这样看。

  Python代码

  导入a

  目录()

  [__builtins__ , __doc__ , __name__ , a]

  导演(a)

  [__builtins__ , __doc__ , __file__ , __name__ , bb]

  总监(a.bb)

  [__builtins__ , __doc__ , __file__ , __name__ , os]

  3.导入包

  第一个合法软件包必须包含__init__。py文件,包可以包含0个或多个模块(py文件)。假设aa文件夹下有test.py文件和bb文件夹,bb文件夹下有c.py。那么导入aa.bb.c时,对命名空间有什么影响呢?

  Python代码

  导入aa.bb.c

  目录()

  [__builtins__ , __doc__ , __name__ , aa]

  导入系统

  对于sys.modules.items()中的k,v:

  .打印k, \t ,v

  .

  嗜酒者互诫协会

  复制注册

  __main__

  位置

  __内置_ _

  编码

  编码.编码无

  aa.bb.c

  posixpath

  全局变量

  编码.编解码器无

  编码. latin_1

  os.path

  _编解码器

  斯达

  zipimport

  警告信息

  编码.类型无

  户词典

  [计]系统复制命令(system的简写)

  编解码器

  阅读线

  类型

  _类型

  信号

  线缓存

  可移植性操作系统接口

  编码.别名

  aa.bb

  例外

  骨

  可以看到只是import aa.bb.c的一句话,但是所有的aa,aa.bb,aabb.c都加到了当前的命名空间。这是为了防止重名,因为如果不加前缀,其他包中重名的模块是无法识别的!原理是python现在在当前命名空间中寻找符号 aa 对应的对象,然后在其命名空间中寻找符号 bb ,再在bb的属性(命名空间)中寻找C。所以AA和bb都要装。但是,这些只加载一次。不信可以试试导入aa.bb.d之类的模块,提前在aa文件夹里。

  在__init__中输入print‘hello’。py文件。只有第一次导入aa.bb.c时才会输出Hello!

  4 .来源和进口

  1)例如:从aa导入bb

  Python代码

  从aa进口bb

  目录()

  [__builtins__ , __doc__ , __name__ , bb]

  导入系统

  sys.modules[bb]

  回溯(最近一次呼叫):

  文件“”中的第1行

  关键错误:“bb”

  sys.modules[aa.bb]

  bb

  aa.bb

  回溯(最近一次呼叫):

  文件“”中的第1行

  名称错误:未定义名称“aa”

  From import只是将导入后的名称引入到命名空间中,方便我们使用,但实际上里面是有模块名称的。导入.如同.是一样的。

  2)来自.导入*

  不推荐这种形式的导入,因为容易污染命名空间。但是你也可以发现。

  首先,如果文件__init__。包中的py没有声明__all__的值,从包*中导入是没有用的。因为python源代码中的import_from_all函数估计会读取__all__的值然后导入。

  这种形式的导入如何影响名称空间?

  答案和进口aa.bb.c一样.

  操作系统模块:

  使用64位环境的fedora 18,python版本为python 2.7.3。

  1.os.getcwd()函数

  函数:获取当前目录,python的工作目的

  导入操作系统

  pwd=os.getcwd()

  打印(密码)

  2.os.name函数

  功能:获取当前使用的操作系统(信息不够详细)

  其中“nt”是windows,“POSIX”是linux或unix

  导入操作系统

  name=os.name

  if name==posix :

  打印(“这是Linux或Unix”)

  elif name==nt :

  打印(“这是windows”)

  否则:

  打印(“这是其他系统”)

  3.操作系统.移除()函数

  功能:删除指定的文件。

  例如:删除file.txt文件

  导入操作系统

  os.remove(file.txt )

  4.os.removedirs()函数

  功能:删除指定的目录

  删除文件目录

  导入操作系统

  os.removedirs(file )

  5.os.system()函数

  功能:运行shell命令

  例如:执行ls -a 1.txt命令

  导入操作系统

  操作系统( ls -a 1.txt )

  6.os.mkdir()函数

  功能:创建一个新目录

  创建一个文件目录。

  导入操作系统

  os.mkdir(文件)

  7.os.chdir()函数

  功能:将当前路径更改为指定路径。

  我将从当前路径转到filepath指定的路径。

  导入操作系统

  filepath=/home

  pwd=os.getcwd()

  打印(密码)

  os.chdir(文件路径)

  pwd=os.getcwd()

  打印(密码)

  8.os.listdir()函数

  函数:返回指定目录下的所有目录和文件。

  列出当前目录中的所有文件和目录。

  导入操作系统

  pwd=os.getcwd()

  name=os.listdir(pwd)

  对于名称中的文件名:

  打印(文件名)

  下面是我自己整理的一些视频分享我的Python知识,希望对你有帮助~2021最新版python零基础高强度7天快速入门熟练度_ cheers ~-哔哩哔哩www.bilibili.com2021最新版python爬虫7天速成课程(附代码课件)_ 12 1

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: