python关于文件和路径的一些操作

一.os.path()

在 Python 中,os.path 模块提供了许多用于处理文件和目录路径的函数,这些函数能够跨操作系统平台运行,因为它们能够自动适应不同的路径分隔符和规范化。

下面是一些常用的 os.path 模块的函数及其用法:

  1. os.path.join():将多个路径组合成一个路径

    • 用于将多个路径组合成一个路径。
    • 示例:
      import os
      path = os.path.join('dir1', 'dir2', 'file.txt')
      print(path)  # 输出结果根据操作系统不同而有所不同
      
  2. os.path.exists():检查路径是否存在

    • 用于检查路径是否存在。
    • 示例:
      import os
      exists = os.path.exists('/path/to/some/file.txt')
      print(exists)  # 输出 True 或 False
      
  3. os.path.isfile() 和 os.path.isdir():检查路径是否为文件或目录

    • 分别用于检查路径是否为文件或目录。
    • 示例:
      import os
      is_file = os.path.isfile('/path/to/some/file.txt')
      is_dir = os.path.isdir('/path/to/some/directory')
      print(is_file, is_dir)  # 输出 True 或 False
      
  4. os.path.abspath():绝对路径

    • 返回绝对路径。
    • 示例:
      import os
      abs_path = os.path.abspath('relative/path/to/somefile.txt')
      print(abs_path)
      
  5. os.path.basename() 和 os.path.dirname():最后一个组件(文件名或目录名)和路径的目录部分

    • 分别返回路径的最后一个组件(文件名或目录名)和路径的目录部分。
    • 示例:
      import os
      filename = os.path.basename('/path/to/some/file.txt')
      dirname = os.path.dirname('/path/to/some/file.txt')
      print(filename, dirname)
      
  6. os.path.split():分割成目录和文件名

    • 将路径分割成目录和文件名。
    • 示例:
      import os
      directory, filename = os.path.split('/path/to/some/file.txt')
      print(directory, filename)
      

    7. os.path.splitext():  分割成文件名和文件后缀       

               1. 函数将文件路径分割成文件名和文件后缀(包括点号)

                2.示例: 

import os

file = './tmp1.py'
f,d = os.path.splitext(file)
print(os.path.abspath(f),d)

  8. os.path.dirname():  返回指定路径的目录部分       

               1. 接收一个路径字符串作为参数,并返回该路径的目录部分。简而言之,它会去掉路径的最后一部分(通常是文件名或目录名),返回剩下的部分。

                2.示例: 

 

# 获取当前脚本所在的路径
current_dir = os.path.dirname(__file__)
# 继续,获取当前路径的上一层路径
parent_dir = os.path.dirname(current_dir)

       

二.os.walk()

os.walk()用于在Python中遍历文件夹树。它返回一个生成器,该生成器在每次迭代时返回一个包含三个元素的元组:(当前文件夹的路径,文件夹中的子文件夹的列表,文件夹中的文件的列表)。这个函数对于递归地操作文件系统,如查找、文件重命名或移动文件特别有用。

下面是一个 os.walk() 的使用例子:

import os

for root, dirs, files in os.walk('..', topdown=True):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

参数说明:

  • root:当前正在遍历的文件夹的路径。
  • dirs:当前root文件夹中所有的子文件夹组成的列表。
  • files:当前root文件夹中所有的非目录文件组成的列表。

选项参数说明:

  • topdown(可选):设置为 True(默认)时,walk 会以自顶向下的方式遍历子文件夹;如果设置为 False,则会自底向上遍历。
  • onerror(可选):一个为一个产生器(或者一个函数),当一个错误发生时,它可以被调用;默认 None。
  • followlinks(可选):设置为 True 时,os.walk() 会在遍历到符号链接时继续跟踪,直到遇到一个非符号链接的目录;默认 False。

请注意,os.walk() 不保证遍历的顺序。如果需要按特定的顺序遍历文件系统,应当在遍历时手动排序 dirs 和 files 列表。

使用 os.walk() 时需要注意,由于它是自顶向下的,它会对每个目录访问多次,一旦访问了其子文件夹,同时它也不会跳过任何子目录,因此不适用于大文件夹的遍历。

os.walk() 是一个非常有用的功能,使得在Python中对文件系统进行复杂的操作成为可能。

三.os.listdir()

在 Python 中,os.listdir() 函数用于返回指定路径下的所有文件和目录名的列表。它是 os 模块中的一个函数,可以很方便地用来列出指定目录中的内容。

下面是 os.listdir() 函数的基本用法示例:

import os

# 列出当前工作目录下的所有文件和目录
files_and_dirs = os.listdir('.')
print(files_and_dirs)

# 列出指定路径下的所有文件和目录
path = '/path/to/directory'
files_and_dirs = os.listdir(path)
print(files_and_dirs)

在上面的示例中:

  • os.listdir('.') 列出当前工作目录下的所有文件和目录。
  • os.listdir('/path/to/directory') 则列出指定路径 /path/to/directory 下的所有文件和目录。

需要注意的是,os.listdir() 返回的列表中包含了所有文件和子目录的名称,不包括 . 和 ..,即当前目录和上级目录的特殊目录项。

如果你需要进一步处理返回的文件和目录列表,可以使用循环或其他列表操作方法来处理每个条目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蓝海拓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值