python os用法笔记

一、OS用法

转自:https://www.cnblogs.com/breakcircle/p/6261566.html

  • 获取文件所在路径
  • import os
  1. os.path.dirname(__file__)  获取当前文件的所在路径
  2. print (os.path.dirname(os.path.dirname(__file__))) 获取当前文件的所在目录的上级路径

  3. print (os.path.dirname(os.path.dirname(os.path.dirname(__file__))))  获取当前文件的所在目录的上级目录的上级路径

 

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=123
os.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. 获得程序所在的实际目录

复制代码
import os
import sys

if __name__ == "__main__":
    print os.path.realpath(sys.argv[0])
    print os.path.split(os.path.realpath(sys.argv[0]))
    print os.path.split(os.path.realpath(sys.argv[0]))[0]
复制代码

执行结果

1
2
3
/home/jihite/ftp/del.py
( ‘/home/jihite/ftp‘ ‘del.py‘ )
/home/jihite/ftp 
  • os.path.split()把目录和文件区分开
1
2
3
4
5
>>> import os
>>> os.path.split( "a/b/c/d" )
( ‘a/b/c‘ ‘d‘ )
>>> os.path.split( "a/b/c/d/" )
( ‘a/b/c/d‘ ‘‘ )

*********************

要执行的命令,相当于在Windows的cmd窗口中输入的命令。

如果是 linux 系统的话就是linux 的 终端输入的命令了

#coding=utf-8
from selenium import webdriver
import os
driver = webdriver.Firefox()
file_path = ‘file:///‘ + os.path.abspath(‘checkbox.html‘)
driver.get(file_path)

---------------------

  • 在Python 的os 模块中提供了system()用来执行系统命令。

比如我们要执行E:\\test_object\\目录
下的all_test.py 文件,可以这样来实现:

#coding=utf-8
import os
os.system(‘E:\\test_object\\all_test.py‘)

或者

import os
os.chdir("E:\\test_object")
os.system(‘Python all_test.py‘)

-----------------

  • 通过os.listdir()可以获取目录下的所有文件
  • 通过os.path.getmtime(path)  #返回在此path下最后一次修改的时间
  • 通过os.path.join(path, name)连接目录和文件名

#coding=utf-8
import os
#定义文件目录
result_dir = ‘E:\\test_object\\report‘
lists=os.listdir(result_dir)
#重新按时间对目录下的文件进行排列
lists.sort(key=lambda fn: os.path.getmtime(result_dir+"\\"+fn))
print (‘最新的文件为: ‘+lists[-1])
file = os.path.join(result_dir,lists[-1])
print file


二、记录下os.path.dirname(__file__)使用

(转自:https://blog.csdn.net/jojoy_tester/article/details/54598713

os.path.dirname(__file__)使用

该测试脚本所在的位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py

test11.py

[python]  view plain  copy
  1. import os  
  2. #该文件所在位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py  
  3.   
  4. path1 = os.path.dirname(__file__)  
  5. print(path1)#获取当前运行脚本的绝对路径  
  6.   
  7. path2 = os.path.dirname(os.path.dirname(__file__)) #  
  8. print(path2)#获取当前运行脚本的绝对路径(去掉最后一个路径)  
  9.   
  10. path3 = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))  
  11. print(path3)#获取当前运行脚本的绝对路径(去掉最后2个路径)  
  12.   
  13. path4 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))  
  14. print(path4)#获取当前运行脚本的绝对路径(去掉最后3个路径)  
  15.   
  16. path5 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))  
  17. print(path5)#获取当前运行脚本的绝对路径(去掉最后4个路径)  
  18.   
  19. path6 = os.__file__                  #获取os所在的目录  
  20. print(path6)  
结果:
[python]  view plain  copy
  1. C:\Python352\python.exe D:/第1层/第2层/第3层/第4层/第5层/test11.py  
  2. D:/第1层/第2层/第3层/第4层/第5层  
  3. D:/第1层/第2层/第3层/第4层  
  4. D:/第1层/第2层/第3层  
  5. D:/第1层/第2层  
  6. D:/第1层  
  7. C:\Python352\lib\os.py  
  8.   
  9. Process finished with exit code 0  

解释:

http://blog.csdn.net/u011760056/article/details/46969883

os.path.dirname(__file__)返回脚本的路径,但是需要注意一下几点:
  • 必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name '__file__' is not defined;
  • 在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:Python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空;
  • 本人实验结果(对原博主的补充):
  • 实验1:(命令端)
  • #-*- coding:utf-8 -*-
    import os  
    #该文件所在位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py  
    #1.
    #path1 = os.path.dirname(__file__)  
    #print (path1)#获取当前运行脚本的绝对路径  
    #2.
    path1=os.path.abspath(__file__)
    print (os.path.dirname(path1))

  • 实验二:(编译器)

  • 结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合:os.path.dirname(os.path.abspath(__file__)),os.path.abspath(__file__)返回的是.py文件的绝对路径。

这就是os.path.dirname(__file__)的用法,其主要总结起来有:

  • 不要在命令行的形式来进行os.path.dirname(__file__)这种形式来使用这个函数;
  • 结合os.path.abspath()使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值