python的os库常用代码

本文详细介绍了操作系统中路径分隔符的区别,特别是在Windows和Unix-like系统之间的差异,以及如何处理反斜杠作为转义字符导致的问题。还展示了os模块在Python中进行文件和目录操作的方法,如路径处理、文件遍历和属性获取等。
摘要由CSDN通过智能技术生成

了解路径,就一定要先了解正斜杠 '/' 和反斜杠 '\'。在 MacOS 和 Linux 系统下,路径默认使用的都是正斜杠'/',在Windows系统下,正反斜杠都可以表示路径分隔符,默认的是反斜杠 '\'。由于反斜杠本身属于转义符,如 '\n' 表示换行符、'\t' 表示横向制表符,这可能会导致使用反斜杠表示的路径在编码时无法被正确识别,如路径'D:\test',在 Python 中,'\test' 中的 '\t' 被识别为制表符,所以该路径无法被找到.

针对这种情况,通常有三种解决办法。

  • 在每个分隔符前加一个反斜杠,原理是先将转义字符转义,例如'D:\\test'
  • 通过非转义的原始字符 'r',在路径字符串前添加 r,例如r'D:\test'
  • 将路径字符串中所有的反斜杠 '\' 改为正斜杠 '/' ,例如'D:/test'

os的路径函数:

path = r'D:\test\number01\huitao.pdf'

path1=r'D:\test\number02'

path2='huitao.txt'

os.path.splite(path)    #  (r'D:\test\number01','huitao.pdf')返回这俩部分

os.path.dirname(path) #   返回 (r'D:\test\number01')

os.path.basename(path)  #返回 (r'huitao.pdf')

os.path.join(path1,path2)  #返回(r'D:\test\number02\huitao.txt')

# 需要查找文件的文件夹
dir= r'D:\test\Pythonfile\资源1\经济主要指标'
# 创建存放结果的列表
list_2024 = list()

# os.listdir()函数遍历指定文件夹,返回包含文件夹中所有文件的列表
all_files = os.listdir(dir)
# 遍历文件夹中每一个文件
for file in all_files:
    # 拼接一个文件的路径,得到该文件的绝对路径
    file_path = os.path.join(dir, file)
    # 使用os.path.basename()函数获取文件名,判断这个文件的文件名是否含有关键字“2024”
    ## 该语句可以替换为 if “2024” in os.path.split(file_path)[1]:
    if '2024' in os.path.basename(file_path): 
        list_2024.append(file_path)

 

 

path = r'D:\test\number01\huitao.pdf'

path1=r'D:\test\number02'

path2='huitao.txt'

os.path.exists(path)  #是否存在这个路径

os.path.getsize(path ) #返回文件大小

os.path.getttime(path) #获取指定文件的修改时间

os.path.getctime(path) #获取指定文件的创建时间

os.path.isfile(path)  #判断这个路径是否是文件

os.path.isabs(path) #判断是否为绝对路径

os.path.isdir(path) #判定指定路径是否为目录

# 文件的绝对路径
path = r'D:\test\Pythonfile\资源1\经济主要指标\投标标.xlsx'
# 判断该路径是否指向文件,避免路径错误
if os.path.exists(path):
    # 获取指定文件的大小
    size = os.path.getsize(path)
    # 获取指定文件的修改时间
    mtime = os.path.getmtime(path)
    print(f'文件大小为{size}字节,最后修改时间为{mtime}')
else:
    print('指定路径不存在')

path = r'D:\test\number01\huitao.pdf'

os.path.splitetext(path ) #文件扩展名 返回(D:\test\number01\huitao,‘.pdf’)

# 文件夹的绝对路径
path = r'D:\test\Pythonfile\资源1\主要指标\huit.pdf'
#用于存放结果的列表
pdf_files = list()

# os.listdir()函数遍历指定文件夹,返回包含文件夹中所有文件的列表
all_files_name = os.listdir(path)
# 遍历每一个文件
for file_name in all_files_name:
    # 拼接文件的路径
    file_path = os.path.join(path, file_name)
    # 如果文件得到拓展名为'pdf',将其添加到列表中
    if os.path.splitext(file_path)[1] == '.pdf':
        pdf_files.append(file_path)

 文件和目录的遍历方法

path = r'D:\test'

os.listdir(path) #返回来 (number01,number01,keras.txt)

os.walk(top,topdown=true,οnerrοr=none,followlinks=false)

  • top 为要遍历的目录路径。返回的是一个三元组(dirpath,dirnames,filenames),dirpath 为当前遍历的目录树的目录路径,dirnames 为当前目录下所有子目录列表,filenames为当前目录下所有文件列表
  • topdown 为可选参数,为 True 时(默认)表示优先遍历 top目录,即 walk 会遍历 top 文件夹与其每一个子目录。否则会优先遍历 top 的子目录。
  • onerror 为可选的错误处理函数。
  • followlinks为可选参数,为 True 时表示会遍历目录下的快捷方式实际所指的目录,为 False 时(默认)表示优先遍历 top 的子目录。
# 递归遍历该目录
walk_tree = os.walk('D:\数据Seminar\Python中的os模块\递归遍历示例文件夹')

# 从根目录开始遍历整个目录树,每一个目录都会返回一个三元组,使用for循环依次查看结果
for dirpath,dirnames,filenames in walk_tree:
    print('----------当前遍历的目录树的目录路径----------')
    print(dirpath)

    print('----------当前目录下的所有子目录列表----------')
    # 遍历当前目录下所有的子目录
    for dirname in dirnames:
        # 拼接路径,得到子目录的路径
        dir_name = os.path.join(dirpath, dirname)
        print(dir_name)
    
    print('----------当前目录下所有文件列表----------')
    # 遍历当前目录下所有的文件
    for filename in filenames:
        # 拼接路径,得到文件路径
        file_name = os.path.join(dirpath,filename)
        print(file_name)

 

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python 中,os 模块提供了许多与操作系统交互的函数。以下是 os 模块中常用的一些函数: - os.getcwd():返回当前工作目录。 - os.chdir(path):更改当前工作目录。 - os.mkdir(path[, mode]):创建单层目录。如果 mode 未指定,则使用默认的 mode。 - os.makedirs(path[, mode]):递归创建目录。 - os.rmdir(path):删除单层空目录。 - os.removedirs(path):递归删除空目录。 - os.listdir(path):返回指定目录下的文件和目录名列表。 - os.rename(src, dst):重命名文件或目录。 - os.stat(path):返回指定文件或目录的信息。 - os.chmod(path, mode):更改文件或目录的权限。 - os.access(path, mode):检查文件或目录是否具有指定的权限。 - os.path.abspath(path):返回绝对路径。 - os.path.basename(path):返回文件名。 - os.path.dirname(path):返回文件路径。 - os.path.exists(path):如果文件或目录存在,则返回 True,否则返回 False。 - os.path.isfile(path):如果 path 是一个文件,则返回 True,否则返回 False。 - os.path.isdir(path):如果 path 是一个目录,则返回 True,否则返回 False。 这只是 os 模块中的一部分函数,更多函数 ### 回答2: Pythonos是一个用于访问操作系统功能的模块,它提供了一系列的函数来处理文件和目录。 下面是os常用函数的示例代码: 1. 获取当前工作目录: ```python import os current_dir = os.getcwd() print("当前工作目录:", current_dir) ``` 2. 切换工作目录: ```python import os os.chdir('/path/to/new/directory') ``` 3. 列出目录下的文件和子目录: ```python import os file_list = os.listdir('/path/to/directory') for file in file_list: print(file) ``` 4. 创建目录: ```python import os os.mkdir('/path/to/new/directory') ``` 5. 创建多级目录: ```python import os os.makedirs('/path/to/new/directory') ``` 6. 删除目录: ```python import os os.rmdir('/path/to/directory') ``` 7. 删除多级目录: ```python import os os.removedirs('/path/to/directory') ``` 8. 重命名文件或目录: ```python import os os.rename('old_file.txt', 'new_file.txt') ``` 9. 删除文件: ```python import os os.remove('file.txt') ``` 这些只是os中的一些常用函数示例代码,并且os还有其他更多的功能可以探索使用。使用这些函数,可以方便地处理文件和目录,对于编写文件操作相关的程序非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值