python之导入os

来源:互联网 发布:手机网络gsm cdma lte 编辑:程序博客网 时间:2024/06/06 12:29

OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作。os模块包含普遍的操作系统功能,与具体的平台无关。

1. import 实际上是python虚拟机把当前的globals()和locals()传进__builtins__.__import__内置函数了,所以实际上干活的是那个__import__函数!

2. import对命名空间的影响

1)如果是python的内置模块,例如os模块。这些模块是随着python虚拟机启动而加载进来的,但是并没有暴露出来。我们可以通过dir()命令查看当前命名空间,可以看到,并没有看到像os,sys等模块。

Python代码  收藏代码
  1. >>> dir()  
  2. ['__builtins__''__doc__''__name__']  

但是如果执行import sys后,那就有了。

Python代码  收藏代码
  1. >>> import sys  
  2. >>> dir()  
  3. ['__builtins__''__doc__''__name__''sys']  

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

Python代码  收藏代码
  1. >>> id(sys)  
  2. 135708788  
  3. >>> id(sys.modules['sys'])  
  4. 135708788  

 

2)import只影响当前模块的命名空间

例如a.py里面有一句import bb,  而bb.py里面有一句import os,那么可以这样查看

Python代码  收藏代码
  1. >>> import a  
  2. >>> dir()  
  3. ['__builtins__''__doc__''__name__''a']  
  4. >>> dir(a)  
  5. ['__builtins__''__doc__''__file__''__name__''bb']  
  6. >>> dir(a.bb)  
  7. ['__builtins__''__doc__''__file__''__name__''os']  
 

3). import package

合法的package必须含有一个__init__.py文件,package可以包含0个或多个module(py文件)。


常用的命令:

1. os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'

2. os.getcwd()——得到当前工作的目录。

3. os.listdir()——指定所有目录下所有的文件和目录名。

4. os.remove()——删除指定文件

5. os.rmdir()——删除指定目录

6. os.mkdir()——创建目录

注意:这样只能建立一层,要想递归建立可用:os.makedirs()

7. os.path.isfile()——判断指定对象是否为文件。是返回True,否则False

8. os.path.isdir()——判断指定对象是否为目录。是True,否则False。        

 9. os.path.exists()——检验指定的对象是否存在。是True,否则False. 

10. os.path.split()——返回路径的目录和文件名,把目录和文件区分开     

11. os.getcwd()——获得当前工作的目录(get current work dir)

12. os.system()——执行shell命令。

注意:此处运行shell命令时,如果要调用python之前的变量,可以用如下方式:

var=123os.environ['var']=str(var) //注意此处[]内得是 “字符串”os.system('echo $var')

13. os.chdir()——改变目录到指定目录


14. os.path.getsize()——获得文件的大小,如果为目录,返回0

15. os.path.abspath()——获得绝对路径。

16. os.path.join(path, name)——连接目录和文件名。

17.os.path.basename(path)——返回文件名

18. os.path.dirname(path)——返回文件路径

19. 获得程序所在的实际目录

os.path.realpath(sys.argv[0])
os.path.split(os.path.realpath(sys.argv[0]))os.path.split(os.path.realpath(sys.argv[0]))[0]

原创粉丝点击