欢迎访问宙启技术站
智能推送

Python中的路径处理技巧大全

发布时间:2023-12-24 11:16:37

在Python中,路径处理是一项常见的任务。无论是读取文件,创建文件夹还是导入模块,都需要使用路径来定位所需的资源。下面是一些常用的路径处理技巧以及使用例子。

1. 当前工作路径(Current Working Directory,CWD)

获取当前脚本文件所在的路径:

   import os
   
   cwd = os.getcwd()
   print(cwd)  # /Users/username
   

2. 相对路径和绝对路径

相对路径是相对于当前工作路径或指定的基本路径的路径。绝对路径是从根目录开始的完整路径。可以使用os.path.join()函数将基础路径和子路径组合成一个完整的路径:

   import os
   
   base_path = '/Users/username'
   sub_path = 'documents/file.txt'
   
   path = os.path.join(base_path, sub_path)
   print(path)  # /Users/username/documents/file.txt
   

3. 检查路径是否存在

可以使用os.path.exists()函数检查路径是否存在:

   import os
   
   path = '/path/to/file.txt'
   
   if os.path.exists(path):
       print('路径存在')
   else:
       print('路径不存在')
   

4. 创建目录

可以使用os.makedirs()函数创建一个或多个目录,如果目录已存在则会引发异常:

   import os
   
   path = '/path/to/new/directory'
   
   os.makedirs(path)
   

5. 获取文件名和文件扩展名

可以使用os.path.basename()函数获取文件名,使用os.path.splitext()函数获取文件名和文件扩展名:

   import os
   
   file_path = '/path/to/file.txt'
   
   file_name = os.path.basename(file_path)
   print(file_name)  # file.txt
   
   file_name, file_ext = os.path.splitext(file_path)
   print(file_name)  # /path/to/file
   print(file_ext)  # .txt
   

6. 路径分割

可以使用os.path.split()函数将路径分割成目录和文件名:

   import os
   
   file_path = '/path/to/file.txt'
   
   directory, file_name = os.path.split(file_path)
   print(directory)  # /path/to
   print(file_name)  # file.txt
   

7. 获取目录列表

可以使用os.listdir()函数获取指定目录下的文件和文件夹列表:

   import os
   
   directory = '/path/to/directory'
   
   file_list = os.listdir(directory)
   for file_name in file_list:
       print(file_name)
   

8. 确定是否是文件或目录

可以使用os.path.isfile()os.path.isdir()函数确定给定路径是否是文件或目录:

   import os
   
   path = '/path/to/file_or_directory'
   
   if os.path.isfile(path):
       print('这是一个文件')
   elif os.path.isdir(path):
       print('这是一个目录')
   else:
       print('路径不存在')
   

9. 文件路径的常规化

可以使用os.path.normpath()函数将路径中的所有多余分隔符和符号链接清除:

   import os
   
   path = '/path//to/../file.txt'
   
   normalized_path = os.path.normpath(path)
   print(normalized_path)  # /path/to/file.txt
   

10. 文件路径的拓展

可以使用os.path.expanduser()函数将路径中的~(用户主目录)符号拓展为完整路径:

    import os
    
    path = '~/file.txt'
    
    expanded_path = os.path.expanduser(path)
    print(expanded_path)  # /Users/username/file.txt
    

这只是一些常见的路径处理技巧,还有很多其他功能强大的模块可以使用,如pathlibshutil等。根据实际需求选择合适的技巧和工具来处理路径将会提高编码效率。