python之os模块详解

2022-07-31 09:18:32

os模块详解

在看大神们的代码时经常能看到os模块的身影,然后就想着做一下总结,方便以后查看
下图是参考CSDN博主“数据分析与统计学之美”,非常感谢博主的图片
在这里插入图片描述
下面我们针对每一个详细的介绍一下其用法:
(1)os.getcwd() 获取当前的工作路径;

>>>import os>>> os.getcwd()'C:\\Users\\cc'

(2)os.listdir(path) 显示当前文件夹下所有文件和目录组成的列表;

>>> path=os.getcwd()>>> os.listdir(path)['.anaconda','.android','.AndroidStudio3.5','.astropy','.bash_history','.cache','.conda','.condarc','.config','.designer','.emulator_console_auth_token','.gitconfig','.gradle','.ipython','.jupyter','.keras','.labelmerc','.liarcom-gui.cfg','.matplotlib','.spyder-py3','.ssh','1.3.6.1.4.1.14519.5.2.1.6279.6001.861997885565255340442123234170.mhd','1.3.6.1.4.1.14519.5.2.1.6279.6001.861997885565255340442123234170.zraw','3D Objects','Anaconda3','ansel','AppData','Application Data','Contacts','Cookies','Datasets','Desktop','Documents','Downloads','Favorites','Links','Local Settings','MicrosoftEdgeBackups','Music','My Documents','NetHood','NTUSER.DAT','ntuser.dat.LOG1','ntuser.dat.LOG2','NTUSER.DAT{53b39e87-18c4-11ea-a811-000d3aa4692b}.TxR.0.regtrans-ms','NTUSER.DAT{53b39e87-18c4-11ea-a811-000d3aa4692b}.TxR.1.regtrans-ms','NTUSER.DAT{53b39e87-18c4-11ea-a811-000d3aa4692b}.TxR.2.regtrans-ms','NTUSER.DAT{53b39e87-18c4-11ea-a811-000d3aa4692b}.TxR.blf','NTUSER.DAT{53b39e88-18c4-11ea-a811-000d3aa4692b}.TM.blf','NTUSER.DAT{53b39e88-18c4-11ea-a811-000d3aa4692b}.TMContainer00000000000000000001.regtrans-ms','NTUSER.DAT{53b39e88-18c4-11ea-a811-000d3aa4692b}.TMContainer00000000000000000002.regtrans-ms','ntuser.ini','OneDrive','Pictures','PrintHood','PycharmProjects','Recent','Saved Games','Searches','SendTo','Templates','UIDowner','Videos','「开始」菜单']

(3)os.walk(path)
含义:含义 :传入任意一个path路径,深层次遍历指定路径下的所有子文件夹,返回的是一个由路径、文件夹列表、文件列表组成的元组
(4)os.path.exists(path)
作用:传入一个path路径,判断指定路径下的目录是否存在。存在返回True,否则返回False;

>>>import os>>> os.getcwd()'C:\\Users\\cc'>>> path=os.getcwd()>>> os.path.exists(path)True

(5)os.mkdir(path)
含义:传入一个path路径,创建单个文件夹;

>>> os.getcwd()'C:\\Users\\cc'>>> path2= os.getcwd()+"\\cuicui">>> os.mkdir(path2)>>> path2'C:\\Users\\cc\\cuicui'

(6)os.makedirs():传入一个path路径,生成一个递归的文件夹
注意:如果文件夹已经存在,就会报错。因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;

if os.path.exists("./weights")isFalse:
        os.makedirs("./weights")# 功能:新建文件夹>>> os.getcwd()'C:\\Users\\cc'>>> path1=os.getcwd()+"\\cuicui">>> os.mkdir(path1)>>> path1'C:\\Users\\cc\\cuicui'>>> os.makedirs("cuicui\\1")>>> path2=os.makedirs("cuicui\\1")
Traceback(most recent call last):
  File"<stdin>", line1,in<module>
  File"C:\Users\cc\Anaconda3\lib\os.py", line220,in makedirs
    mkdir(name, mode)
FileExistsError:[WinError183] 当文件已存在时,无法创建该文件。:'cuicui\\1'

(7)os.rmdir(path)
含义:传入一个path路径,删除指定路径下的文件夹;
注意:该方法只能删除空文件夹,删除非空文件夹会报错;

>>> os.rmdir('cuicui//1//2')

(8)os.path.join(path1,path2)
含义:传入两个path路径,将该路径拼接起来,形成一个新的完整路

>>> path2'C:\\Users\\cc\\a\\b\\c'>>> f="1.txt">>> os.path.join(path2,f)'C:\\Users\\cc\\a\\b\\c\\1.txt'>>>

(9)os.path.split(path)
含义:传入一个完整的path路径,将其拆分为绝对路径和文件名两部分

>>> path3=os.path.join(path2,f)>>> os.path.split(path3)('C:\\Users\\cc\\a\\b\\c','1.txt')>>>

(10)os.path.dirname(path)
含义:传入一个完整的文件路径,只获取其绝对路径;

>>> path3=os.path.join(path2,f)>>> os.path.split(path3)('C:\\Users\\cc\\a\\b\\c','1.txt')>>> path4=os.path.dirname(path3)>>> path4'C:\\Users\\cc\\a\\b\\c'>>>

(11)os.path.basename(path)
含义:传入一个完整的文件路径,只获取其文件名;

>>> path3'C:\\Users\\cc\\a\\b\\c\\1.txt'>>> path5=os.path.basename(path3)>>> path5'1.txt'

(12)os.path.isdir(path)
含义:传入一个完整的文件路径,判断它是否是文件夹;

path= os.getcwd()
file_list= os.listdir()forfilein file_list:if os.path.isdir(file):print(file)

(13)os.path.isfile(path)
含义:传入一个完整的文件路径,判断它是否是文件;

path= os.getcwd()
file_list= os.listdir()forfilein file_list:if os.path.isfile(file):print(file)

(14)os.path.sep
含义:返回当前操作系统的路径分隔符;

>>> os.path.sep'\\'

(15)os.path.getsize(path)
含义:传入一个完整的文件路径,返回该文件的大小;

>>> os.path.getsize("cuicui")0

参考资料:(1)https://blog.csdn.net/weixin_41261833/article/details/108047966?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163784090316780269868868%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163784090316780269868868&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-108047966.first_rank_v2_pc_rank_v29&utm_term=+os%E6%A8%A1%E5%9D%97&spm=1018.2226.3001.4187
(2)https://blog.csdn.net/qq_38684504/article/details/86609283?ops_request_misc=&request_id=&biz_id=102&utm_term=%20os%E6%96%87%E4%BB%B6%E7%9A%84%E5%90%84%E7%A7%8D%E7%94%A8%E6%B3%95&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-86609283.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187

  • 作者:翠小白
  • 原文链接:https://blog.csdn.net/weixin_47166887/article/details/121545932
    更新时间:2022-07-31 09:18:32