python os用法笔记
一、OS用法
转自:https://www.cnblogs.com/breakcircle/p/6261566.html
- os.path.dirname(__file__) 获取当前文件的所在路径
print (os.path.dirname(os.path.dirname(__file__))) 获取当前文件的所在目录的上级路径
- 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 sysif __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 |
| 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)
---------------------
比如我们要执行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‘)
-----------------
#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- import os
- #该文件所在位置:D:\第1层\第2层\第3层\第4层\第5层\test11.py
- path1 = os.path.dirname(__file__)
- print(path1)#获取当前运行脚本的绝对路径
- path2 = os.path.dirname(os.path.dirname(__file__)) #
- print(path2)#获取当前运行脚本的绝对路径(去掉最后一个路径)
- path3 = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
- print(path3)#获取当前运行脚本的绝对路径(去掉最后2个路径)
- path4 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
- print(path4)#获取当前运行脚本的绝对路径(去掉最后3个路径)
- path5 = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
- print(path5)#获取当前运行脚本的绝对路径(去掉最后4个路径)
- path6 = os.__file__ #获取os所在的目录
- print(path6)
- C:\Python352\python.exe D:/第1层/第2层/第3层/第4层/第5层/test11.py
- D:/第1层/第2层/第3层/第4层/第5层
- D:/第1层/第2层/第3层/第4层
- D:/第1层/第2层/第3层
- D:/第1层/第2层
- D:/第1层
- C:\Python352\lib\os.py
- Process finished with exit code 0
解释:
http://blog.csdn.net/u011760056/article/details/46969883
- 必须是实际存在的.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()使用
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
