欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python 文件路径名、文件名、后缀名操作

程序员文章站 2022-06-12 16:49:11
...

当需要使用路径名来获取文件名、目录名、绝对路径等等的时候,墙裂推荐使用常用路径操作模块os.path。

Talk is cheap. Show me the code.

__author__ = '[email protected]'
# -*- coding: utf-8 -*
import os

root_path = 'C:\\Python37\\Tools\\scripts\\2to3.py'
# 杩斿洖鏂囦欢鍚?
basename = os.path.basename(root_path)
print(basename)#2to3.py

# 杩斿洖鐩綍璺緞
dirname = os.path.dirname(root_path)
print(dirname)#C:\\Python37\\Tools\\scripts

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
dirname,basename = os.path.split(root_path)
print(dirname)#C:\Python37\Tools\scripts
print(basename)#2to3.py

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
root,ext = os.path.splitext(root_path)
print(root)#C:\Python37\Tools\scripts\2to3
print(ext)#.py

# 灏嗙洰褰曞拰鏂囦欢鍚嶅悎鎴愪竴涓矾寰?
join_path = os.path.join('C:\Python37\Tools','scripts','2to3.py')
print( join_path ) #'C:\\Python37\\Tools\\scripts\\2to3.py'

#绫籙nix鐨勮矾寰?
root_path = '/Users/Google/Data/path.csv'

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
print(os.path.split(root_path))
#('/Users/Google/Data', 'path.csv')

# 鍒嗗壊鏂囦欢鍚嶄笌璺緞
print(os.path.splitext(root_path))
#('/Users/Google/Data/path', '.csv')
print( os.path.join('/Users/Google/','Data','path.csv') ) #'C:\\Python37\\Tools\\scripts\\2to3.py'

对于任何的文件名的操作,你都应该使用os.path 模块,而不是使用标准字符串操作来构造自己的代码。特别是为了可移植性考虑的时候更应如此,不同的操作系统具有不同的路径名称约定,os.path 模块始终是适合 Python 运行的操作系统的路径模块。其次,你真的不应该浪费时间去重复造*,通常最好是直接使用已经为你准备好的功能。


os.path.dirname(path)
    返回路径 path 的目录名称。
    这是将 path 传入函数 split() 之后,返回的一对值中的第一个元素。

os.path.basename(path)
    返回路径 path 的基本名称。
    这是将 path 传入函数 split() 之后,返回的一对值中的第二个元素。
    请注意,此函数的结果与Unix basename 程序不同。
    basename 在 '/foo/bar/' 上返回 'bar',而 basename() 函数返回一个空字符串 ('')。

os.path.split(path)
    将路径 path 拆分为一对,即 (head, tail),
    其中,tail 是路径的最后一部分,而 head 里是除最后部分外的所有内容。
    tail 部分不会包含斜杠,如果 path 以斜杠结尾,则 tail 将为空。
    如果 path 中没有斜杠,head 将为空。如果 path 为空,则 head 和 tail 均为空。
    head 末尾的斜杠会被去掉,除非它是根目录(即它仅包含一个或多个斜杠)。
    在所有情况下,join(head, tail) 指向的位置都与 path 相同(但字符串可能不同)。

os.path.splitext(path)
    将路径 path 拆分为一对,即 (root, ext),使 root + ext == path,
    其中 ext 为空或以英文句点开头,且最多包含一个句点。
    路径前的句点将被忽略,例如 splitext('.cshrc') 返回 ('.cshrc', '')。


参考:
https://www.cnblogs.com/baxianhua/p/10214512.html
https://www.runoob.com/python/python-os-path.html
https://docs.python.org/zh-cn/3.8/library/os.path.html

相关标签: Python