Python 中如何处理文件系统路径

发布时间:2022-03-22 09:59:07 人气:248 作者:多测师

  1 不同操作系统分隔符

  在 Windows 操作系统中,文件路径以倒斜杠作为文件夹之间的分隔符。但在 OSX 和 Linux 上,使用的则是正斜杠作为路径分隔符。如果希望让程序适配所有操作系统,就会用到 os.path.join() 函数。

  import os

  path = os.path.join('usr', 'local', 'sbin')

  print(path)

  运行结果:

  usr\local\sbin

  如果在 OS X 或 Linux 上调用这个函数, 就会返回 ‘usr/local/sbin’。

  2 当前运行环境所在路径与切换路径

  利用 os.getcwd() 函数,可以获取当前当前运行环境所在路径。而使用 os.chdir() 可以改变这个路径。

  current_path=os.getcwd()

  print(current_path)

  #切换当前所在路径

  os.chdir('C:\Program Files')

  print(os.getcwd())

  运行结果:

  F:\python_projects\xxx\excel\file

  C:\Program Files

  注意: 如果要更改的运行环境所在路径不存在,就会抛出错误:

  os.chdir('C:\\not_exist')

  运行结果:

  FileNotFoundError: [WinError 2] 系统找不到指定的文件。: ‘C:\not_exist’

  这时,可以使用 os.makedirs() 创建所有必要的中间文件夹,确保路径存在:

  not_exist_path = 'C:\\not_exist\\1'

  try:

  os.chdir(not_exist_path)

  except FileNotFoundError:

  os.makedirs(not_exist_path)

  os.chdir(not_exist_path)

  print(os.getcwd())

  运行结果:

  C:\not_exist\1

Python 中如何处理文件系统路径

  3 路径函数

  3.1 os.path 模块路径函数

  函数说明

  os.path.abspath(path)返回 path 的绝对路径。适用于将相对路径转换为绝对路径。

  os.path.isabs(path)如果 path 是绝对路径,就返回 True;否则返回 False。

  os.path.relpath(path, start)返回从 start 路径到 path 的相对路径。如果没有提供 start 参数,则使用当前运行目录作为开始路径。

  os.path.basename(path)返回 path 参数中最后一个斜杠之后的所有内容。

  os.path.dirname(path)返回 path 参数中最后一个斜杠之前的所有内容。

  os.path.split(path)返回路径中的目录与名称元组。

  os.path.exists(path)是否存在 path 路径。

  os.path.isfile(path)path 路径存在,并且是文件。

  os.path.isdir(path)path 路径存在,并且是文件夹。

  3.2 相对路径与绝对路径

  os.chdir('C:\\Program Files')

  print(os.path.abspath('.'))

  print(os.path.abspath('.\\Common Files'))

  print(os.path.isabs('.'))

  print(os.path.isabs('C:\\Program Files'))

  运行结果:

  C:\Program Files

  C:\Program Files\Common Files

  False

  True

  因为首先使用 os.chdir() 把当前路径切换到了 C:\\Program Files,所以调用 os.path.abspath() 时, 当前运行所在目录是 C:\\Program Files, 所以“ 点” 的相对路径表示法所对应的绝对路径就是 C:\\Program Files。

  3.3 返回从 start 路径到 path 的相对路径

  print(os.path.relpath('C:\\Program Files','C:\\'))

  print(os.path.relpath('C:\\Program Files','C:\\windows\\addins\\'))

  运行结果:

  Program Files

  …\Program Files

  3.4 获取路径中的目录与名称

  path='C:\Program Files\Common Files\Adobe\CEP\extensions\LogiOptionsAdobe\index.html'

  print(os.path.basename(path))

  print(os.path.dirname(path))

  print(os.path.split(path))

  运行结果:

  index.html

  C:\Program Files\Common Files\Adobe\CEP\extensions\LogiOptionsAdobe

  (‘C:\Program Files\Common Files\Adobe\CEP\extensions\LogiOptionsAdobe’, ‘index.html’)

  注意: 如果需要返回路径中的每一部分的名称列表,os.path.split(path) 就不适用啦。我们可以使用 split() 方法来实现:

  print(path.split(os.path.sep))

  运行结果:

  [‘C:’, ‘Program Files’, ‘Common Files’, ‘Adobe’, ‘CEP’, ‘extensions’, ‘LogiOptionsAdobe’, ‘index.html’]

  3.5 路径验证

  print(os.path.exists('C:\\Program Files'))

  print(os.path.isdir('C:\\Program Files'))

  print(os.path.isfile('C:\\Program Files'))

  print(os.path.isfile('C:\Program Files\Common Files\Adobe\CEP\extensions\LogiOptionsAdobe\index.html'))

  运行结果:

  True

  True

  False

  True

  以上内容为大家介绍了Python 中如何处理文件系统路径,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/

返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线