ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python之os模块详解

2021-11-26 11:02:37  阅读:143  来源: 互联网

标签:文件夹 Users python 路径 cc 详解 path os


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") is False:
        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>", line 1, in <module>
  File "C:\Users\cc\Anaconda3\lib\os.py", line 220, in makedirs
    mkdir(name, mode)
FileExistsError: [WinError 183] 当文件已存在时,无法创建该文件。: '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()
for file in file_list:
    if os.path.isdir(file):
        print(file)

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

path = os.getcwd()
file_list = os.listdir()
for file in 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

标签:文件夹,Users,python,路径,cc,详解,path,os
来源: https://blog.csdn.net/weixin_47166887/article/details/121545932

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有