python常用模块-OS模块

最后都变了- 提交于 2020-03-18 12:23:51

关于路径处理问题:OS第三方库方法总结

import os
__file__:指当前文件,带有路径的 D:/svn_auto3/test_case1/test1.py(注意这里的斜杠,和abspath的区别就是这里)
                                                      
# 路径操作
>>> os.chdir('D:\\') # 进入目录
# 目录切换操作

>>> import os
>>> os.curdir
'.'
>>> os.pardir
'..'
>>> os.getcwd()
'C:\\Users\\suyongai'
>>> os.chdir('..')
>>> os.getcwd()
'C:\\Users'
>>> os.chdir(os.pardir)
>>> os.getcwd()
'C:\\'     
                                                      
# 查看运行路径                                                   
>>> os.getcwd()
'D:\\'
>>> os.listdir() # 查看运行路径下的所有目录
['$RECYCLE.BIN', '07', '22f5f432caef7a4ed420ff0479f680be', '2345Downloads', '360安全浏览器下载', '360用户文件', 'a.txt', 'AirtestIDE', 'apache', 'auth', 'automation', 'automation2', 'automation_load', 'BaiduNetdiskDownload', 'c.txt', 'Config.Msi', 'DbScript', 'download', 'everythin', 'KDR', 'KingsoftData', 'LDSGameMaster', 'LSL', 'LSL_auto', 'LSL_auto_2019-7-15', 'mod_wsgi', 'MyDownloads', 'notepad++', 'Program Files', 'Program Files (x86)', 'Python_env', 'QMDownload', 'QQLive', 'QQPCMgr', 'qqpcmgr_docpro', 'QTA', 'RoseProject', 'safemon', 'svn_auto3', 'System Volume Information', 'tanzhou', 'Temp', 'test.py', 'test_auto', 'test_file', 'untitled', 'untitled1', 'untitled2', 'Users', 'VS', 'WMJ_auto', '~$__python__work__autocase__test_doc__2019-07-02.docx', '光荣之路', '分析与形成', '掠食龙', '数据库', '新建文件夹', '最开始装的', '简历', '\ufffd\uefea\u02bc\u05f0\ufffd\ufffd']                                        
>>> os.makedirs('D:\\pic1\\pic2') # 创建多级目录
>>> os.mkdir('pic2')  # 在当前文件夹内创建一个文件夹
  
# os.remove('a.txt') 删除文件
# os.rmdir('a') # 删除空文件夹
# os.removedirs('a\\b\\c') # 删除多级空文件夹
# os.stat('D:\\a.txt').st_ctime  获取文件创建时间(windows是创建时间,Linux是更新时间)
# os.stat('D:\\a.txt').st_atime  上一次访问时间
# os.stat('D:\\a.txt').st_mtime  最后一次修改时间
                                                      
# os.walk('D:\\test_file') # 输出在文件夹中的文件名通过在树中游走,向上或者向下
>>> list(os.walk('D:\\test_file'))
[('D:\\test_file', ['test1'], ['a1.txt']), ('D:\\test_file\\test1', [], [])]
以列表元祖的形式返回,元祖里面包括3个元素:(路径,【文件夹】,【文件】)
>>> list(os.walk('D:\\test_file', topdown=True)) # 默认是True,从顶级目录开始扫
[('D:\\test_file', ['test1'], ['a1.txt']), ('D:\\test_file\\test1', [], [])]
>>> list(os.walk('D:\\test_file', topdown=False)) # 当为False 从子级目录开始扫
[('D:\\test_file\\test1', [], []), ('D:\\test_file', ['test1'], ['a1.txt'])]
>>>
                                                      
# os.sep :获取操作系统特定的路径分隔符(linux系统或网络上的传输都是用的  / , windows系统是用的  \ )
>>> os.sep  # 是在windows系统下面执行的
'\\'

# os.name 查看正在使用的工作平台,Windows-> 'nt', Linux->'posix'
>>> os.name
'nt'

# os.getcwd 获取当前的工作目录,python运行的那个目录
print(os.getcwd())
C:\\Users\\苏永艾
      
# os.mkdir() 创建目录   os.rmdir() 删除目录,只能删除空目录
os.mkdir('test111.text')
os.rmdir('test111.text')

# os.system() 允许系统命令
 os.system('python test.py')

# 判断是否文件或者文件夹是否存在
>>> os.path.isdir('D:\\test') # 判断运行路径下面是否有这个目录
False
>>> os.path.isdir('07')
True
>>> os.path.isfile('a.py') # 判断是否是一个存在的文件
False
>>> os.path.isfile('test.py')
True  


# os.path.isfile('a.txt')  # 判断是否是一个文件
# os.path.isdir('test_file')  # 判断是否是一个文件夹
# os.path.isabs('D:\\a.txt')  # 判断是否是绝对路径
# os.path.exists('D:\\test_file')  # 判断路径是否存在(绝对路径和相对路径都能判断)                                                                               
# os.path.join()  拼接路径,拼接可以忽略操作系统对路径的影响 (最好用于拼接相对路径)
>>> os.path.join('D','auto', 'test.py')
'D\\auto\\test.py'
>>> os.path.join('D:', 'auto', 'test.py') # 如果在windows环境下面,这个路径就有问题
'D:auto\\test.py'   
 
# os.path.split() 返回一个路径的目录和文件名的元祖(注意在分割的那个位子的\是被删除的)
>>> os.path.split(r'D:\\auto\\test.py')
('D:\\auto', 'test.py')
>>> os.path.split('D:\\pythontest\\ostest\\')  # 这个函数是根据路径分隔符进行拆分的
('D:\\pythontest\\ostest', '')
      
# os.path.splitext()  分离文件名和拓展名
>>> os.path.splitext('001.jpg')
('001', '.jpg') 
      
# os.path.basename() 返回文件名/目录名
>>> os.path.basename('D\\svn_auto3\\app\\core')
'core'
>>>os.path.basename(os.getcwd())
svn_auto3
      
# os.path.dirname():返回文件路径,这个和上面分割函数的第一个结果是一样的效果
>>> os.path.dirname('D\\auto\\core')
'D\\auto'
>>> os.path.dirname('D:\\auto\\core\\text.txt')
'D:\\auto\\core'
      
# os.path.abspath() # 获取文件的绝对路径
os.path.abspath('test.py')
D:\svn_auto3\test.py

# 获取盘符
>>> os.path.splitdrive('D:\\test') 
('D:', '\\test')
                                                      
# os.path.getsize() 获取文件的大小
>>> os.path.getsize(r'D:\a.txt')
9  
      
#os.path.getatime(path):返回path所指向的文件或者目录的最后存取时间。时间戳
>>> os.path.getatime('C:\EzcarryIm\log')
1563897213.8838737
>>> a = os.path.getatime('C:\EzcarryIm\log')
>>> from datetime import datetime
>>> datetime.fromtimestamp(a)
datetime.datetime(2019, 7, 23, 23, 53, 33, 883874)
>>> datetime.fromtimestamp(a).strftime('%Y-%m-%d %H:%M:%S')
'2019-07-23 23:53:33'

#os.path.getmtime(path):返回path所指向的文件或者目录的最后修改时间。时间戳
>>> datetime.fromtimestamp(a).strftime('%Y-%m-%d %H:%M:%S')
'2019-07-23 23:53:33'
>>> b = os.path.getmtime('C:\Python27')
>>> b
1560677780.8316813
>>> datetime.fromtimestamp(a).strftime('%Y-%m-%d %H:%M:%S')
'2019-07-23 23:53:33'    
    

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!